sql server 复杂查询 | 珊瑚贝

sql server complex query


SQL

第一个是源表,第二个是目标表,所以在第二个表中通过使用 unpivot 将 12 个月的列转换为单列和 YTD 字段应该自动更新。如果月份名称是 Jan 表示 YTD 字段将仅显示 Jan 数据,如果是 Feb 表示它将添加 Jan 数据和 Feb 数据。如果是 12 月,则相同意味着它将从同一行的 1 月添加到 12 月。

  • 最好提供这些输入数据的文本,而不是 Image
  • 你试过什么,你的问题是什么?
  • 抱歉…我想不出这种要求的任何逻辑。这就是我在 staskoverflow 中发布它的原因。


使用 cross apply(values …) 反透视您的数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
    t.[oru code]
  , t.[bg name]
  , t.[bu name]
  , t.[DOMAIN]
  , t.KPI
  , t.UoM
  , t.[YEAR]
  , t.[ACT/TARGET]
  , v.[MONTH]
  , v.KPI
  , t.[YTD/ITM]
FROM t
  CROSS apply (VALUES
    (‘Jan’,Jan) ,(‘Feb’,Feb) ,(‘Mar’,Mar)
   ,(‘April’,April) ,(‘May’,May) ,(‘Jun’,Jun)
   ,(‘Jul’,Jul) ,(‘Aug’,Aug) ,(‘Sep’,Sep)
   ,(‘Oct’,Oct) ,(‘Nov’,Nov) ,(‘Dec’,DEC)
    ) v ([MONTH],KPI)

看起来你需要做的是 unpivot,如下所示:

1
2
3
4
5
SELECT *, [YTD] = SUM(yourYTD calculation COLUMN) OVER(partition BY [OruCode],[YEAR] ORDER BY MONTH) FROM (
   SELECT OruCode, BGName —your required columns upto dec
       FROM table1 t1 CROSS JOIN table2 t2
 )
 unpivot (KPINo FOR [MONTH] IN ([Jan],[Feb]) ) p
  • 在 Unpivot 之后,我需要根据月份值更新 YTD 字段。表示累计和。
  • 我的意思是,如果月份名称是 jan,它将更新 YTD 列中的 jan 月份值,如果它是 feb,则 YTD 列将更新 Jan 值 feb 值,就像它是 May 比 YTD=jan feb mar apr可能
  • 是的,这就是我的查询要做的


只需单独选择所有月份,然后将它们联合起来:

1
2
3
4
5
6
7
SELECT [ORU code], [BG Name], YEAR, ‘Jan’ AS [MONTH], [Jan] AS [KPI #], [Jan]
AS [YTD/ITM] FROM  source_table
UNION ALL
SELECT [ORU code], [BG Name], YEAR, ‘Feb’ AS [MONTH], [Feb] AS [KPI #], [Jan]+
[Feb]  AS [YTD/ITM] FROM  source_table
UNION ALL
SELECT ….

你明白了


来源:https://www.codenong.com/44435867/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8685.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?