Convertir une requête de MS Access à SQL Server

J'ai une expérience limitée avec SQL, mais on m'a demandé de convertir la requête ci-dessous de MS Access.

TRANSFORM SUM(weekpace_crosstab.wgt) AS SumOfwgt SELECT Products.[Product Type], SUM(weekpace_crosstab.wgt) AS DeliveryTotal FROM (weekpace_crosstab LEFT JOIN Customer ON weekpace_crosstab.Customer = Customer.Customer) LEFT JOIN Products ON weekpace_crosstab.Product = Products.[Product Code] WHERE (((Customer.[Customer Group])="Sainsbury")) GROUP BY Products.[Product Type] PIVOT weekpace_crosstab.Date; 

C'est le résultat …

Grâce à Google et d'autres questions sur ce forum, j'ai écrit la déclaration ci-dessous. Cependant, je ne peux pas get le total de la livraison à apparaître comme dans l'image ci-dessus.

 SELECT * FROM ( SELECT P.[Product Type], wc.Date, sum (wc.wgt) AS DeliveryTotal FROM weekpace_crosstab AS wc LEFT JOIN Customer AS C ON wc.Customer = C.Customer LEFT JOIN Products as p ON wc.Product = P.[Product Code] WHERE C.[Customer Group]='Co-op' GROUP BY p.[Product Type], wc.Date, wc.wgt ) AS s PIVOT ( SUM (DeliveryTotal) FOR [Date] in ([2017-01-23],[2017-01-24],[2017-01-25],[2017-01-26],[2017-01-27],[2017-01-28],[2017-01-29]) )AS pvt ORDER BY [Product Type] 

Voici le résultat de cette requête …

Quelqu'un peut-il conseiller sur la façon d'get la colonne de total de livraison ajoutée?

Merci de votre attention.

Vous devez append le DeliveryTotal en tant que deuxième colonne, car le premier est utilisé par le pivot qu'il montrera pivoté seulement

Essayer

 SELECT * FROM ( SELECT P.[Product Type], wc.Date, sum (wc.wgt) AS DeliveryTotal, w.wgt FROM weekpace_crosstab AS wc LEFT JOIN Customer AS C ON wc.Customer = C.Customer LEFT JOIN Products as p ON wc.Product = P.[Product Code] LEFT JOIN ( SELECT SUM(wgt)wgt, Product FROM weekpace_crosstab WHERE Date IN ('2017-01-23', '2017-01-24', '2017-01-25', '2017-01-26', '2017-01- 27', '2017-01-28', '2017-01-29') GROUP BY product) w ON w.Product = wc.product WHERE C.[Customer Group]='Co-op' GROUP BY p.[Product Type], wc.Date, w.wgt ) AS s PIVOT ( SUM (DeliveryTotal) FOR [Date] in ([2017-01-23],[2017-01-24],[2017-01-25],[2017-01-26],[2017-01- 27],[2017-01-28],[2017-01-29]) )AS pvt ORDER BY [Product Type]