Как отобразить счетчик одного поля в строке с другим запросом в SQL? - PullRequest
1 голос
/ 14 марта 2012

Я пробовал внутренние соединения, перекрестные соединения и выбирал правые внутренние соединения, и я не могу добиться того, что хочу показать.

У меня есть таблица, подобная этой

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

Я приложил изображение с примером набора данных и результатами, которых я пытаюсь достичь.Любая помощь приветствуется, так как я застрял на этом в течение нескольких часов.

enter image description here

Спасибо

Ответы [ 4 ]

5 голосов
/ 14 марта 2012

Я думаю, что простые COUNT и GROUP 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
0 голосов
/ 14 марта 2012

А как же GROUP BY?

select DateIn
, ProductID
, No_Of_Pallets=COUNT(*)
from Content
group by DateIn, ProductID
0 голосов
/ 14 марта 2012

Попробуй,

SELECT  DateIn, ProductID, COUNT(1) AS NoOfPallets 
FROM Content 
GROUP BY DateIn, ProductID 
ORDER By DateIn, ProductID
0 голосов
/ 14 марта 2012

Это запрос, подобный следующему:

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

Я предполагаю, что ваше поле DateIn действительно является полем даты (если вам не нужно конвертировать).

Вы сказали ProductNameна вашем чертеже, но вы даете productId в определении таблицы.Я предполагаю, что они одинаковы.Если нет, то вам нужно добавить дополнительное объединение для разрешения Id -> name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...