I have a crosstab query in access but i need this query in SQL Server but SQL does not support crosstabs, as you probably know. How can I convert this crosstab to be useful in SQL Server? Thank you very much for your help, I'm lost.
The Crosstab Query:
sCAN_BreadVelocity:
The Crosstab Query:
Code:
TRANSFORM Sum(sCAN_BreadVelocity.PSPW) AS SumOfPSPW
SELECT sCAN_BreadVelocity.DC, sCAN_BreadVelocity.Item, sCAN_BreadVelocity.Vendor, sCAN_BreadVelocity.DCName, sCAN_BreadVelocity.ItemDescription, Avg(sCAN_BreadVelocity.PSPW) AS AveragePSPW
FROM sCAN_BreadVelocity
GROUP BY sCAN_BreadVelocity.DC, sCAN_BreadVelocity.Item, sCAN_BreadVelocity.Vendor, sCAN_BreadVelocity.DCName, sCAN_BreadVelocity.ItemDescription
PIVOT sCAN_BreadVelocity.STC_EffectiveDate;
sCAN_BreadVelocity:
Code:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET ANSI_WARNINGS OFF
GO
-- exec sCAN_BreadVelocity '3/24/2003'
ALTER PROCEDURE dbo.sCAN_BreadVelocity
(
@i_EndDate datetime
)
AS
SET NOCOUNT ON
CREATE TABLE #temp
(
DC nvarchar,
EndDate datetime,
DCName nvarchar,
Item nvarchar,
ItemDescription nvarchar,
PSPW decimal (15,4),
STC_EffectiveDate datetime,
Vendor nvarchar (255),
MonthHeader datetime,
Cases decimal (15,4),
STC_StoreCount int
)
INSERT INTO #temp
(
DC,
EndDate,
DCName,
Item,
ItemDescription,
PSPW,
STC_EffectiveDate,
Vendor,
MonthHeader,
Cases,
STC_StoreCount
)
SELECT
tCAN_Velocity.DC,
@i_EndDate,
tCAN_DCs.DCName,
tCAN_Velocity.Item,
tCAN_Matrix.[Desc] AS ItemDescription,
dbo.GetPSPW(Cases,STC_StoreCount,STC_EffectiveDate) AS PSPW,
vCAN_StoreCount.STC_EffectiveDate,
IsNull(tCAN_Matrix.Vendor,"Unspecified") AS Vendor,
-- Format([STC_EffectiveDate],"mmm yyyy")
-- AS
-- MonthHeader, :
right(convert(char(11),STC_EffectiveDate,113),8) AS MonthHeader,
tCAN_Velocity.Cases,
vCAN_StoreCount.STC_StoreCount
FROM
((vCAN_StoreCount
INNER
JOIN tCAN_Velocity
ON
(vCAN_StoreCount.STC_IDDC = tCAN_Velocity.DC)
AND
(vCAN_StoreCount.MonthEff = tCAN_Velocity.Month)
AND
(vCAN_StoreCount.YearEff = tCAN_Velocity.Year))
INNER JOIN
tCAN_DCs
ON
tCAN_Velocity.DC = tCAN_DCs.DC)
LEFT JOIN
tCAN_Matrix
ON
(tCAN_Velocity.DC = tCAN_Matrix.DC)
AND
(tCAN_Velocity.Item = tCAN_Matrix.GFSNo)
AND
(tCAN_Velocity.Year = tCAN_Matrix.Year)
AND
(tCAN_Velocity.Month = tCAN_Matrix.Month)
WHERE
(
(
vCAN_StoreCount.STC_EffectiveDate
Between
DateAdd(m,-11,@i_EndDate)
And
@i_EndDate
)
AND
(
IsNull(tCAN_Matrix.Vendor,"Unspecified")
In ('Gerards','Turano','UpperCrust','Canada')
)
)
ORDER BY
tCAN_Velocity.DC,
tCAN_Velocity.Item,
vCAN_StoreCount.STC_EffectiveDate
SELECT
*
FROM
#temp
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO