Wpis z mikrobloga

@MatexN: nie napisałeś co chcesz osiągnąć i w którym miejscu jest 10% rozbieżności, ale zgaduję, że na kolumnie:
SUM(DISTINCT FAKTURANAGLOWEK.WARTOSCFAKTURY) AS "Maksymalna kwota zakupów"

Strzelam, że tu, bo opis nie przystaje do sqla. To nie jest ani max zakupów, ani suma (bo co jeśli dwie faktury są na tę samą kwotę).
@Dionizja: Zły opis dałem, chodzi mi o sumę.
Jeśli mam wygenerowaną jedną fakturę na 100zł, która ma 5 pozycji, to w widoku pokaże mi się 500zł.
Z użyciem distinct kwota w widoku będzie nadal zawsze większa od tej co mam łącznie w fakturach. Im więcej faktur tym kwota będzie się bardziej różnić.
@aardwolf: 1. W przypadku grup by id_klienta, wywala mi błąd ora-00979 to nie jest wyrażenie group by
2.
@MatexN: od złej strony się za to zabierasz. Spróbuj tak: tabele faktura detale pogrupuj po id faktury i zsumuj co potrzebujesz. Nastepnie użyj tego jako podzapytania i dojoinuj informacje o fakturze i kliencie.

W przypadku grup by idklienta, wywala mi błąd ora-00979 to nie jest wyrażenie group by


A dodajesz idklienta w select?
@Dionizja: Tak daje, jednak wtedy i tak muszę group by dać po 3 kolumnach.
select a.idklienta, sum(b.wartoscfaktury) from Klient a, Fakturanaglowek b where a.idklienta = b.idklienta group by a.idklienta;
To mi zwraca dobre wyniki.
@MatexN:

Tak daje, jednak wtedy i tak muszę group by dać po 3 kolumnach.


Bo tak działa group by.

To mi zwraca dobre wyniki.


Czyli rację miał @aardwolf - masz klientów o tym samym imieniu i nazwisku. Plusik dla tego pana :-)

I nie jest prawdą, że zwraca Ci to dobre wyniki. Błąd wykryjesz jak jakiś klient dwa razy będzie miał te same kwoty. Rozwiązanie z podzapytaniem, które wcześniej Ci opisałam,
@Dionizja: Tzn mam w bazie tam 8 czy 10 klientów i dla nich generuje np. 10 tysięcy faktur ( ͡° ͜ʖ ͡°)
Obecnie dla 5k faktur zwraca dobre wyniki, dam celowo 2 na tą samą kwotę by zobaczyć jak to będzie się zachowywało i spróbuje z tym podzapytaniem chociaż nigdy tak nie pisałem ( ͡° ʖ̯ ͡°)