【发布时间】:2016-08-23 06:06:47
【问题描述】:
在 SQL 中使用 Pivot 函数之前,我得到了这个记录结构
使用 Pivot 后:
这是我的 SQL 查询
SELECT
FromHubID,
FromHubName,
ToHubID,
SUM([1 - 100]) AS [1 - 100],
SUM([101 - 250]) AS [101 - 250],
SUM([251 - 500]) AS [251 - 500],
SUM([501 - 1000]) AS [501 - 1000]
FROM
(SELECT
AccountGroupID,
FromHubID,
FromHubName,
ToHubID,
T_ID,
[1 - 100],
[101 - 250],
[251 - 500],
[501 - 1000]
FROM
(
SELECT
AG.AccountGroupID
,AG.FromHubID
,FH.Hub_Name AS FromHubName
,AG.ToHubID
,AG.T_ID
,CONVERT(VARCHAR , [MinWeight]) + ' - ' + CONVERT(VARCHAR ,[MaxWeight]) AS slot
,[Rate]
FROM
[CourierDev].[dbo].[AccountGroupQuotation] AS AG
INNER JOIN HubMaster AS FH ON FH.Hub_Id = AG.FromHubID
WHERE
accountgroupid = 1
)Sourcetable
PIVOT
(
Sum(Rate)
FOR slot IN ( [1 - 100],
[101 - 250],
[251 - 500],
[501 - 1000] )
)AS AGQuotationList
)AS tbl
GROUP BY
FromHubID,
FromHubName,
ToHubID
我的问题是插槽中的字段数和它的值在此处未修复我在 Pivot 语法中添加静态字段并选择语法 对于这个特定的记录,但是当槽值和槽值计数不固定时如何管理?
FOR 示例 如果只有 2 种类型的记录 [1 - 100],[101 - 250] 那么我只想要两个枢轴
【问题讨论】:
标签: sql-server database stored-procedures sql-server-2012