Сгруппировать с помощью UNION

Мой код не группируется должным образом, он по-прежнему не группирует [Reden uitstroom2] и [Reden uitstroom3] с [Reden uitstroom1]. Счетчик работает правильно, но показывает дубликаты в [Reden Uitstroom1].

Например:

Повторное определение помещения1 = 1x A / 2x B
Повторное определение помещения2 = 1x A / 1x B

Антал Уитструм 2014 - Реден Уитструм1
1 - A
1 - A
2 - B
1 - B

Что должно быть:

Антал Уитструм 2014 - Реден Уитструм1
2 - А
3 - Б

Кажется, я не могу изменить [Reden Uitstroom1] на [Reden Uitstroom], потому что тогда он возвращает числа вместо A / B...

SELECT        Count(Hertoetsing.[Reden uitstroom1]) AS [Aantal Uitstroom 2014],
                   (Hertoetsing.[Reden uitstroom1]) AS [Reden Uitstroom1]

FROM          Klantinformatie     

INNER JOIN    Hertoetsing 
    ON        Klantinformatie.KlantID=Hertoetsing.Klantid

WHERE         (((Year(Hertoetsing.[Datum uitstroom1]))=2014))

GROUP BY      Hertoetsing.[Reden uitstroom1]

UNION ALL

SELECT        Count(Hertoetsing.[Reden uitstroom2]) AS [Aantal Uitstroom 2014],
                   (Hertoetsing.[Reden uitstroom2]) AS [Reden Uitstroom1]

FROM          Klantinformatie 

INNER JOIN    Hertoetsing 
    ON        Klantinformatie.KlantID=Hertoetsing.Klantid

WHERE         (((Year(Hertoetsing.[Datum uitstroom2]))=2014))

GROUP BY      Hertoetsing.[Reden uitstroom2]

UNION ALL

SELECT        Count(Hertoetsing.[Reden uitstroom3]) AS [Aantal Uitstroom 2014],
                   (Hertoetsing.[Reden uitstroom3]) AS [Reden Uitstroom1]

FROM          Klantinformatie 

INNER JOIN    Hertoetsing 
    ON        Klantinformatie.KlantID=Hertoetsing.Klantid

WHERE         (((Year(Hertoetsing.[Datum uitstroom3]))=2014))

GROUP BY      Hertoetsing.[Reden uitstroom3];

person Hugo Vogels    schedule 28.10.2014    source источник


Ответы (1)


Вам нужно обернуть запрос в другой SELECT, т.е.

SELECT 
    Sum ([Aantal Uitstroom 2014]) AS [Aantal Uitstroom 2014], 
    [Reden Uitstroom]
FROM
(
     [UNION query goes here]

)
GROUP BY [Reden Uitstroom]

Без оболочки SELECT все, что он делает, — это добавление результатов каждого отдельного Count, поскольку к нему не применяется суммирование или группировка.

person citizenkong    schedule 28.10.2014
comment
Спасибо, это работает! Только одна проблема... [Реден Уитструм] возвращает числа, когда их нет, лол... 1-2-3-4-5-6-7-9 - person Hugo Vogels; 31.10.2014
comment
Он берет числа из другой таблицы, например, 1 — это определенная причина в раскрывающемся списке, а 2 — следующая причина и т. д. - person Hugo Vogels; 31.10.2014