如何在SQL中显示与另一个查询一致的一个字段的计数?

时间:2012-03-14 17:59:31

标签: sql sql-server-2008

我尝试过内连接,交叉连接和选择右内连接,我似乎无法实现我想要显示的内容。

我有一张像这样的桌子

Content
------------
|ID        |
|PalletID  |
|ProductID |
|DateIn    |
------------

我附上了一个带有样本数据集的图像以及我想要实现的结果。欢迎任何帮助,因为我已经坚持了几个小时。

enter image description here

由于

4 个答案:

答案 0 :(得分:5)

我认为一个简单的COUNTGROUP BY对您有用:

SELECT  DateIn, ProductID, COUNT(*) [No. Of Pallets]
FROM    Content
GROUP BY DateIn, ProductID

或者,如果您有另一个存储产品名称的表,则可能需要以下内容:

SELECT  DateIn, ProdName, COUNT(*) [No. Of Pallets]
FROM    Content
        INNER JOIN Product
            ON Product.ProductID = Content.ProductID
GROUP BY DateIn, ProdName

答案 1 :(得分:0)

这是一个如下的查询:

 select DateIn, ProductId, count(*) as NumPallets
 from Content
 group by DateIn, ProductId
 order by ProductId, DateIn

我假设您的DateIn字段实际上是一个日期字段(如果您不需要转换)。

您在绘图中说了ProductName,但是在表定义中给出了productId。我认为它们是一样的。如果没有,那么您需要添加额外的联接来解析Id - >名。

答案 2 :(得分:0)

尝试,

SELECT  DateIn, ProductID, COUNT(1) AS NoOfPallets 
FROM Content 
GROUP BY DateIn, ProductID 
ORDER By DateIn, ProductID

答案 3 :(得分:0)

GROUP BY怎么样?

select DateIn
, ProductID
, No_Of_Pallets=COUNT(*)
from Content
group by DateIn, ProductID