Комбинация Sum () + DCount () в SQL не дает правильных результатов - PullRequest
0 голосов
/ 17 июня 2011

Как я могу получить общее количество яблок Гренни Смит? Я перепробовал все, и ничего не работает. Это перекрестный запрос, и я пытаюсь подсчитать количество яблок Granny_Smith в каждом транспортном контейнере.

MS Access 2007 Expression

Total_Green_Apples: Sum(DCount("[Apple_Type]","[Apples]","[Apple_Type]"='Granny_Smith'))

SQL

TRANSFORM Count(DCount("[Apple_Type]","[Apples]")) AS Apple_Type
SELECT Shipping.Container_number, Sum(DCount("[Apple_Type]","[Apples]","[Apple_Type]"='Granny_Smith')) AS Total_Green_Apples
FROM Shipping INNER JOIN Apples ON Shipping.ID = Apples.ID
GROUP BY Shipping.Container_number
PIVOT Apples.Apple_Type;

Пожалуйста, помогите.

1 Ответ

1 голос
/ 17 июня 2011

Если я правильно читаю ваш вопрос, вам просто нужно подсчитать все яблоки Грэнни Смит во всех транспортных контейнерах?

Я как бы догадываюсь о структуре вашей БД и вот что я придумаю:

SELECT COUNT(Apples.ID) as Total_Green_Apples
FROM Shipping
    JOIN  Apples ON Apples.ID = Shipping.ID
WHERE Apples.Apple_Type = 'Granny Smith'

Если вы хотите, чтобы количество яблок Грэнни Смит в каждом контейнере было бы равно:

SELECT Shipping.ID, COUNT(Apples.ID) as Total_Green_Apples
FROM Shipping
    JOIN  Apples ON Apples.ID = Shipping.ID
WHERE Apples.Apple_Type = 'Granny Smith'
GROUP BY Shipping.ID

Если вы предоставите определения таблиц, я могу настроить запрос.

...