小编Sql*_*mer的帖子

SQL Server以非字母值作为列名

我在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)

t-sql sql-server common-table-expression

4
推荐指数
1
解决办法
50
查看次数

使用 CTE 从下线记录中获取总计数和总金额之和

我们如何使用 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)

sql sql-server

2
推荐指数
1
解决办法
125
查看次数

标签 统计

sql-server ×2

common-table-expression ×1

sql ×1

t-sql ×1