Aktywne Wpisy

notakjakbytotalnie_ +158
krul jest pro starbucks w pięknych czasach przyszło mi żyć
źródło: 894a96b8ed10361a7a42f3ed129b988592ee8728f2751ab6620aad981870fa0a
Pobierz
pieknylowca +68
Treść przeznaczona dla osób powyżej 18 roku życia...





Mam problem z jednym widokiem
https://pastebin.com/seLsg7tt
Nie zwraca mi poprawnej liczby, przy niewielkiej ilości faktur jest dobrze, przy np. 1000 jest różnica o 1%, przy 20k już ponad 10%.
Fakturadetale ma klucz złożony, gdzie pod idfaktury mam różną liczbę pozycji.
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ę).
1. klientów o tym samym imieniu i nazwisku grupujesz razem, zamiast grupować po id_klienta
2. pierwszy raz widzę żeby ktoś stosował sum(distinct), czemu to ma służyć?
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
A dodajesz idklienta w select?
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.
Bo tak działa group
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 ( ͡° ʖ̯ ͡°)