Agregacja Danych COUNT(DISTINCT)

0

Witam.

Może takie banalne pytanie. Stworzyłem zapytanie które ma policzyć mi w bazie odbiorców którzy są nowi(pierwsza faktura w 2017 r) i pogrupować to po dziale sprzedaży.

Czy to pytanie jest dobre ? Bo niestety zapytanie kręci ale nie pokazuje żadnych danych.

SELECT "dzial sprzedazy" ,COUNT(DISTINCT ODBIORCA)
FROM mojabaza
GROUP BY "dzial sprzedazy"
HAVING ( MIN(( "data utworzenia faktury" )) >= '2017-01-01' )
;

Proszę o pomoc.

Dzięki

0

A dlaczego w Having? Nie prościej:

SELECT "dzial sprzedazy" ,COUNT(DISTINCT ODBIORCA)
FROM mojabaza
where "data utworzenia faktury" >= '2017-01-01'
GROUP BY "dzial sprzedazy"
0

Having to operacja po wykonaniu grupowania, w nowo utworzonej bazie z tego co widzę masz tylko nazwę działu i ilość, to nie ma prawa działać.

0

Operacja nie działa bo nie jest błąd agregacji danych.

mojabaza jest bazą wszystkich fakktur (dokładnie jest to widok) który zawiera wszystkie nr faktur i składowe czyli Kod Odbiorcy dział sprzedazy Materiały jakie były sprzedawane i inne detale(obrót, koszt)

Chciałbym sprawdzić na początku odbiorców którzy wykonali swoją PIERWSZĄ fakturę w 2018 r i wtedy tych wszystkich odbiorów pogrupować po działach sprzedaży.

Select DISTINCT mojabaza."dzial sprzedazy",  COUNT( mojabaza.ODBIORCA)
FROM mojabaza
GROUP BY mojabaza..ODBIORCA, mojabaza.."dzial sprzedazy"
HAVING (MIN (mojabaza.."data utworzenia faktury") >= TO_DATE('2018-01-01','YYYY-MM-DD'));

To zapytanie niestety źle agreguje dane do działu sprzedaży bo je powiela(dział sprzedaży występuje kilka razy) i jest jakiś problem z prawidłowym policzeniem bo liczy nie zlicza mi klientów wg HAVING czyli pierwsza faktura tylko zlicza wszystkich aktywnych klientów w 2018r.

1 użytkowników online, w tym zalogowanych: 0, gości: 1