SQL Group结果并根据产品添加它们

时间:2014-03-04 14:55:54

标签: sql sql-server

我有以下SQL,它基本上可以计算每个项目的成本计算等。

SELECT
    L.LocID,
    L.LocationName,
    L.LocationSqrMtr,
    L.LocationAddress,
    L.LocationPostCode,
    L.LocationContact,
    I.SubPIDItemID,
    I.SPID,
    I.ProductID,
    C.SubPIDCostID,
    C.PricePerItem,
    C.ManDayPerItem
FROM
    dbo.SubPIDCosts AS C
    INNER JOIN dbo.SubPIDItems AS I ON
        C.ProductID = I.ProductID
    RIGHT OUTER JOIN dbo.SubPIDLocations AS L ON
        I.LocationID = L.LocID AND C.LocationID = L.LocID
WHERE C.SPID = 48

返回:

+-------+--------------+----------------+-----------------+------------------+-----------------+--------------+----------+-----------+--------------+--------------+---------------+-----+----+---+-----+--------+--------+--------+------+
| LocID | LocationName | LocationSqrMtr | LocationAddress | LocationPostCode | LocationContact | SubPIDItemID |   SPID   | ProductID | SubPIDCostID | PricePerItem | ManDayPerItem |     |    |   |     |        |        |        |      |
+-------+--------------+----------------+-----------------+------------------+-----------------+--------------+----------+-----------+--------------+--------------+---------------+-----+----+---+-----+--------+--------+--------+------+
| 379   |              |                | Location        | 1                | 1               | 345          | Generic  | Building  | Generic      | Building     | NULL          | 158 | 48 |   |     |        | 108    | 0.3400 | 6.17 |
| 379   |              |                | Location        | 1                | 1               | 345          | Generic  | Building  | Generic      | Building     | NULL          | 159 | 48 | 1 | 109 | 0.3400 |        | .47    |      |
| 379   | 3            | Location       | 1               | 615              | Generic         | Building     | Generic  | Building  | NULL         | 160          | 48            |     |    |   | 110 | 0.7317 | 0.50   |        |      |
| 379   | 4            | Location       |                 |                  | 615             | Generic      | Building | Generic   | Building     | NULL         | 161           | 48  |    |   |     | 111    | 0.7317 | 0.50   |      |
| 379   | 4            | Location       |                 |                  | 615             | Generic      | Building | Generic   | Building     | NULL         | 16            |     | 48 | 1 | 11  |        | 0.7317 | 0.50   |      |
+-------+--------------+----------------+-----------------+------------------+-----------------+--------------+----------+-----------+--------------+--------------+---------------+-----+----+---+-----+--------+--------+--------+------+

enter image description here

但我想做的是按产品ID分组。所以那些是ProductID 22的它应该为ManDayPerItem和PricePerItem以及LocationSqrMtr添加值

它用于以下上下文

enter image description here

我希望将它们很好地归入该列表中。

1 个答案:

答案 0 :(得分:0)

正如你所说,分组:

SELECT ProductID, SUM(ManDayPerItem), SUM(PricePerItem), SUM(LocationSqrMtr)
FROM
    dbo.SubPIDCosts AS C
    INNER JOIN dbo.SubPIDItems AS I ON
        C.ProductID = I.ProductID
    RIGHT OUTER JOIN dbo.SubPIDLocations AS L ON
        I.LocationID = L.LocID AND C.LocationID = L.LocID
WHERE C.SPID = 48
GROUP BY ProductID;