我在CTE中建立枢纽查询。我有一个表Table_1:
Store Count xCount
------- ---- ------
101 1 138
109 1 59
101 2 282
109 2 97
105 3 60
109 3 87
105 4.a 60
109 4.b 87
Run Code Online (Sandbox Code Playgroud)
在表_1中,列数的数据类型为varchar(10)。
我使用动态数据透视查询来旋转Table_1
DECLARE @DynamicCol AS NVARCHAR(MAX),
@SQL AS NVARCHAR(MAX)
select @DynamicCol = STUFF((SELECT distinct ',' + QUOTENAME(count)
from table_1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @SQL = ';WITH CTE as (
SELECT store,' + @DynamicCol + ' from
(
select * from table_1
) res
pivot
( …Run Code Online (Sandbox Code Playgroud) 我们如何使用 SQL 对所有下线行进行计数并求和到其上线。
当前数据:
ST_ID UPLINE AMOUNT
---------------------------
44930 52001 400
52016 52001 300
52001 9024 432
76985 9024 100
12123 35119 234
12642 35119 213
12332 23141 654
Run Code Online (Sandbox Code Playgroud)
在上表中,uplinedata 52001两个ST_ID总金额400为 ,300每个总金额为700ST_ID ,因此总52001金额为,并且上线的总金额为,总金额为。4005201400 + 300 + 432 = 11329024ST_ID52001432 + 7001132
预期输出:
UPLINE AMOUNT CNT
------------------------
52001 1132 2 (400 +300 + 432 | 1+1+1)
9024 1232 4 (700 + …Run Code Online (Sandbox Code Playgroud)