|
| 1 | +{ |
| 2 | + "excel": { |
| 3 | + "db": "sampleDB", |
| 4 | + "output": "d:/temp/동적변수_테스트_2024.xlsx", |
| 5 | + "separateToc": false, |
| 6 | + "maxRows": 20, |
| 7 | + "style": "modern" |
| 8 | + }, |
| 9 | + "vars": { |
| 10 | + "envType": "운영", |
| 11 | + "startDate": "2024-01-01", |
| 12 | + "endDate": "2024-06-30", |
| 13 | + "regionList": ["서울", "부산"], |
| 14 | + "statusList": ["ACTIVE", "PENDING", "COMPLETED"], |
| 15 | + "categoryIds": [1, 2, 3, 5], |
| 16 | + "maxRows": 1000 |
| 17 | + }, |
| 18 | + "dynamicVars": [ |
| 19 | + { |
| 20 | + "name": "customerData", |
| 21 | + "type": "column_identified", |
| 22 | + "description": "고객 데이터 컬럼별 분류", |
| 23 | + "query": "SELECT CustomerID, CustomerName, City, Region, CustomerType FROM SampleDB.dbo.Customers WHERE IsActive = 1 ORDER BY CustomerID" |
| 24 | + }, |
| 25 | + { |
| 26 | + "name": "orderDetails", |
| 27 | + "type": "key_value_pairs", |
| 28 | + "description": "주문상세 정보", |
| 29 | + "query": "SELECT OrderID, OrderDetailID FROM SampleDB.dbo.OrderDetails ORDER BY OrderID" |
| 30 | + }, |
| 31 | + { |
| 32 | + "name": "activeOrders", |
| 33 | + "description": "활성 주문 목록", |
| 34 | + "query": "SELECT OrderID FROM SampleDB.dbo.Orders WHERE OrderStatus = 'Pending' ORDER BY OrderID" |
| 35 | + }, |
| 36 | + { |
| 37 | + "name": "recentOrders", |
| 38 | + "description": "최근 주문 정보", |
| 39 | + "query": "SELECT OrderID, OrderNumber, OrderDate FROM SampleDB.dbo.Orders WHERE OrderDate >= '${startDate}' AND OrderDate <= '${endDate}' AND OrderDate >= DATEADD(day, -30, '${CURRENT_DATE}') ORDER BY OrderDate DESC" |
| 40 | + } |
| 41 | + ], |
| 42 | + "sheets": [ |
| 43 | + { |
| 44 | + "name": "${envType}_동적변수_테스트", |
| 45 | + "use": true, |
| 46 | + "aggregateColumn": "지역", |
| 47 | + "maxRows": 100, |
| 48 | + "db": "sampleDB", |
| 49 | + "query": "SELECT c.CustomerID as 고객ID, c.CustomerName as 고객명, c.City as 도시, c.Region as 지역, c.CustomerType as 고객유형 FROM SampleDB.dbo.Customers c WHERE c.CustomerID IN (${customerData.CustomerID}) AND c.Region IN (${regionList}) ORDER BY c.CustomerID" |
| 50 | + }, |
| 51 | + { |
| 52 | + "name": "주문상세_동적변수_테스트2", |
| 53 | + "use": true, |
| 54 | + "aggregateColumn": "주문상태", |
| 55 | + "query": "SELECT o.OrderID as 주문ID, o.OrderNumber as 주문번호, o.OrderStatus as 주문상태, od.OrderDetailID as 상세ID, FORMAT(o.TotalAmount, 'N0') as 총금액 FROM SampleDB.dbo.Orders o INNER JOIN SampleDB.dbo.OrderDetails od ON o.OrderID = od.OrderID WHERE o.OrderID IN (${orderDetails.OrderID}) AND o.OrderID IN (${activeOrders}) ORDER BY o.OrderID DESC" |
| 56 | + }, |
| 57 | + { |
| 58 | + "name": "주문상세_동적변수_테스트", |
| 59 | + "use": true, |
| 60 | + "aggregateColumn": "주문상태", |
| 61 | + "query": "SELECT o.OrderNumber as 주문번호, FORMAT(o.OrderDate, 'yyyy-MM-dd') as 주문일, o.OrderStatus as 주문상태, c.CustomerName as 고객명, FORMAT(o.TotalAmount, 'N0') as 총금액 FROM SampleDB.dbo.Orders o INNER JOIN SampleDB.dbo.Customers c ON o.CustomerID = c.CustomerID WHERE o.OrderID IN (${recentOrders.OrderID}) AND o.OrderStatus IN (${statusList}) ORDER BY o.OrderDate DESC" |
| 62 | + }, |
| 63 | + { |
| 64 | + "name": "복합_동적변수_테스트", |
| 65 | + "use": true, |
| 66 | + "query": "SELECT c.CustomerName as 고객명, c.Region as 지역, COUNT(o.OrderID) as 주문건수, FORMAT(SUM(o.TotalAmount), 'N0') as 총주문금액 FROM SampleDB.dbo.Customers c INNER JOIN SampleDB.dbo.Orders o ON c.CustomerID = o.CustomerID WHERE c.CustomerID IN (${customerData.CustomerID}) AND c.Region IN (${customerData.Region}) AND o.OrderID IN (${activeOrders}) AND o.OrderDate >= '${startDate}' AND o.OrderDate <= '${endDate}' GROUP BY c.CustomerName, c.Region ORDER BY 총주문금액 DESC" |
| 67 | + }, |
| 68 | + { |
| 69 | + "name": "시각함수_동적변수_테스트", |
| 70 | + "use": true, |
| 71 | + "query": "SELECT '현재시각' as 구분, '${CURRENT_TIMESTAMP}' as 현재시각, '${CURRENT_DATE}' as 현재날짜, '${CURRENT_TIME}' as 현재시간, '${UNIX_TIMESTAMP}' as 유닉스타임스탬프, '${GETDATE}' as SQL서버_GETDATE UNION ALL SELECT '동적변수_테스트' as 구분, CONVERT(VARCHAR, GETDATE(), 120) as 현재시각, CONVERT(VARCHAR, GETDATE(), 23) as 현재날짜, CONVERT(VARCHAR, GETDATE(), 108) as 현재시간, DATEDIFF(SECOND, '1970-01-01', GETDATE()) as 유닉스타임스탬프, GETDATE() as SQL서버_GETDATE" |
| 72 | + } |
| 73 | + ] |
| 74 | +} |
0 commit comments