Присоединиться к столбцу, показывающему сумму 2 данных вместе - PullRequest
0 голосов
/ 28 февраля 2019
SELECT o.ProductID ,
       p.ProductName ,
       o.unitprice AS UnitCost ,
       sum(o.Quantity) AS TotalUnitsSold ,
       (sum(o.Quantity)*o.unitprice) AS FinalCost
FROM OrderDetails o
JOIN Products p ON o.ProductID = p.ProductID
GROUP BY o.ProductID ,
         p.ProductName ,
         o.unitprice
ORDER BY 1

Я хочу еще один столбец помимо окончательной стоимости, который дает общее количество продуктов, вкратце для chai это должно быть 2505.60+11772.00

sql output

ОЖИДАЕМЫЕ o / p

ProductID    ProductName    UnitCost    TotalUnitsSold    FinalCost       Total
1                Chai            14.40        174           2505.60          14277.60
1                Chai            18.00        654           11772.00         Null

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать оконную функцию, она даст общее количество для всех строк:

SELECT  T.ProductID
,       T.ProductName
,       T.UnitCost
,       T.TotalUnitsSold
,       T.FinalCost
,       SUM(T.FinalCost) OVER(PARTITION BY ProductID) AS Total
FROM    (
            SELECT o.ProductID ,
                   p.ProductName ,
                   o.unitprice AS UnitCost ,
                   sum(o.Quantity) AS TotalUnitsSold ,
                   (sum(o.Quantity)*o.unitprice) AS FinalCost
            FROM OrderDetails o
            JOIN Products p ON o.ProductID = p.ProductID
            GROUP BY o.ProductID ,
                     p.ProductName ,
                     o.unitprice
        ) AS T
ORDER BY 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...