Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlserver中的PIVOT概念_Sql_Sql Server_Pivot_Pivot Table_Unpivot - Fatal编程技术网

sqlserver中的PIVOT概念

sqlserver中的PIVOT概念,sql,sql-server,pivot,pivot-table,unpivot,Sql,Sql Server,Pivot,Pivot Table,Unpivot,我有一个存储过程,如下所示: ALTER PROC [dbo].[USP_GetDraftQuoteByQuoteID] (@QuoteID int) AS BEGIN SELECT cl.Quote_ID,cl.PECCode,lpu.Description,cl.Site_ID,cl.Quantity FROM ConfigurationList cl LEFT OUTER JOIN LPU lpu ON cl.PECCode=lpu.PECCode WHERE Quote_ID = @Q

我有一个存储过程,如下所示:

ALTER PROC [dbo].[USP_GetDraftQuoteByQuoteID]
(@QuoteID int)
AS 
BEGIN
SELECT cl.Quote_ID,cl.PECCode,lpu.Description,cl.Site_ID,cl.Quantity
FROM ConfigurationList cl
LEFT OUTER JOIN LPU lpu
ON cl.PECCode=lpu.PECCode
WHERE Quote_ID = @QuoteID
Quote   PECCode      Description  Site ID    Quantity
9   NTK539PDE5       OCLD            IND        8
9   NTK525FAE5       NULL            BVT        4
9   NTK531YAE5       NULL            CAX        3
9   NTNM34TB         NULL            IND        5
9   NTK569HA         NULL            COX        8
9   NTNM70ER         NULL            CBA        4
9   CNMT278BR        NULL            IND        4
9   NTRU0411         NULL            BVT        8
我得到的输出如下所示:

ALTER PROC [dbo].[USP_GetDraftQuoteByQuoteID]
(@QuoteID int)
AS 
BEGIN
SELECT cl.Quote_ID,cl.PECCode,lpu.Description,cl.Site_ID,cl.Quantity
FROM ConfigurationList cl
LEFT OUTER JOIN LPU lpu
ON cl.PECCode=lpu.PECCode
WHERE Quote_ID = @QuoteID
Quote   PECCode      Description  Site ID    Quantity
9   NTK539PDE5       OCLD            IND        8
9   NTK525FAE5       NULL            BVT        4
9   NTK531YAE5       NULL            CAX        3
9   NTNM34TB         NULL            IND        5
9   NTK569HA         NULL            COX        8
9   NTNM70ER         NULL            CBA        4
9   CNMT278BR        NULL            IND        4
9   NTRU0411         NULL            BVT        8
但我想得到如下输出:

Quote   PECCode      Description  IND   BVT   CAX   COX   CBA
9   NTK539PDE5       OCLD           8
9   NTK525FAE5       NULL                4
9   NTK531YAE5       NULL                      3
9   NTNM34TB         NULL           5                  
9   NTK569HA         NULL                             8      
9   NTNM70ER         NULL                                   4
9   CNMT278BR        NULL           4      
9   NTRU0411         NULL               8
在这里,数量基于PECCode和站点。我认为这里我们必须使用枢轴概念。但我无法达到预期的效果。任何人都可以帮忙。

试试这个:

SELECT QuoteID, PECCode, Desc, 
[IND] as IND_Site, [BVT] as BVT_Site, [CAX] as CAX_Site, [COX] as COX_Site, [CBA] as CBA_Site
FROM
(

SELECT cl.Quote_ID AS QuoteID
,cl.PECCode as PECCode
,lpu.Description as Desc
,cl.Site_ID as SiteID
,cl.Quantity as Quant
FROM ConfigurationList cl
LEFT OUTER JOIN LPU lpu
ON cl.PECCode=lpu.PECCode
WHERE Quote_ID = @QuoteID) T

PIVOT

(
   SUM (Quant)
   FOR
      SiteID IN ([IND], [BVT], [CAX], [COX], [CBA])
) as Pivoted_Table
ORDER BY PECCode
试试这个:

SELECT QuoteID, PECCode, Desc, 
[IND] as IND_Site, [BVT] as BVT_Site, [CAX] as CAX_Site, [COX] as COX_Site, [CBA] as CBA_Site
FROM
(

SELECT cl.Quote_ID AS QuoteID
,cl.PECCode as PECCode
,lpu.Description as Desc
,cl.Site_ID as SiteID
,cl.Quantity as Quant
FROM ConfigurationList cl
LEFT OUTER JOIN LPU lpu
ON cl.PECCode=lpu.PECCode
WHERE Quote_ID = @QuoteID) T

PIVOT

(
   SUM (Quant)
   FOR
      SiteID IN ([IND], [BVT], [CAX], [COX], [CBA])
) as Pivoted_Table
ORDER BY PECCode