c# - 动态透视带有摘要的 SQL 数据表
问题描述
我有以下数据表,它是从读取条形码并相应地包装一些服装的过程中生成的,我想要做的是旋转这个表来总结这个包装过程。
我的源表:
我试图达到的结果是:
我尝试使用以下代码执行此操作,但结果出现问题,该结果仅返回一种尺寸和所有颜色。
IF OBJECT_ID('tempdb..##TBL_TEMP') IS NOT NULL
DROP TABLE ##TBL_TEMP
-- This parameter will hold the dynamically created SQL script
DECLARE @SQLQuery AS NVARCHAR(MAX)
--This parameter will hold the Pivoted Column values
DECLARE @PivotColumns AS NVARCHAR(MAX)
SELECT @PivotColumns = (SELECT DISTINCT [Size])
FROM [dbo].[Tabel]
--Create the dynamic query with all the values for
--pivot column at runtime
--LIST ALL FILEDS EXCEPT PIVOT COLUMN
SET @SQLQuery =
N'SELECT [ColorName]' + @PivotColumns + '
INTO ##TBL_TEMP
FROM [dbo].[Tabel]
PIVOT( MAX([Qty])
FOR [Size] IN (' + @PivotColumns + ')) AS Q'
--Execute dynamic query
EXEC sp_executesql @SQLQuery
/* VIEW PIVOTED TABLE RESULTS */
Select * from ##TBL_TEMP
你能帮我用C#得到结果吗
解决方案
我认为您在查询中遗漏了一些小东西。在您的数据透视列和动态查询的 Select 语句中尝试这些小的更改。
只需在动态 SQL 选择查询中添加 BoxNo 和 StyleCode 并 PIVOT SUM[Qty] 的数据
SET @SQLQuery =
N'SELECT [BoxNo],[StyleCode],[ColorName],' + @PivotColumns + '
INTO ##TBL_TEMP
FROM [dbo].[Tabel]
PIVOT(SUM([Qty])
FOR [Size] IN (' + @PivotColumns + ')) AS Q'
--Execute dynamic query
EXEC sp_executesql @SQLQuery
--VIEW PIVOTED TABLE RESULTS--
SELECT * FROM ##TBL_TEMP
请看我的示例数据的截图
现在试试这段代码:
Select BoxNo,StyleCode,ColorName,Size,Qty
INTO #tbl_1
FROM [dbo].[1202-904200]
DECLARE @SQLQuery AS NVARCHAR(MAX)
DECLARE @PivotColumns AS NVARCHAR(MAX)
SELECT @PivotColumns= ISNULL(@PivotColumns + ',','') + QUOTENAME([Size]) FROM
(SELECT DISTINCT [Size] FROM #tbl_1) as Size
--Create the dynamic query with all the values for pivot column at runtime.
SET @SQLQuery = N'SELECT [BoxNo],[StyleCode],[ColorName],' + @PivotColumns + '
INTO ##TBL_TEMP
FROM #tbl_1 -- Replace your source here to #tbl_1
PIVOT(SUM([Qty])
FOR [Size] IN (' + @PivotColumns + ')) AS Q'
--Execute dynamic query
EXEC sp_executesql @SQLQuery
/* VIEW PIVOTED TABLE RESULTS */
SELECT * FROM ##TBL_TEMP
推荐阅读
- lua - 如何在 AI 反应中整合计算时间?
- bash - Bash如何在系统提示符下输入数据
- styled-components - 背景:使用 .attrs() 函数的 url()
- html - 如何对齐滑块、文本和值?
- django - Django 在事务中删除
- swift - PromiseKit,如何等待最终的承诺?
- python - 数字猜谜游戏 Python
- python-3.x - python递归避免结果作为全局变量
- javascript - ReactJS 使用 Ionic Uncaught TypeError:无法从 axios 请求中读取未定义的属性“映射”
- java - 并行流() java 1.8 与 11