Suma bez powtórzen - SQL

0
SELECT DISTINCT LEFT(awizacja,6),sum(appt.kartony) FROM appt

Mam pytanko. Chciałbym aby zliczało mi sumę kartonów z wszystkich awizacji bez powtórzen. Przykład:

765432 1/3 (10 kartonów), 765432 2/3 (10 kartonów),765432 3/3 (10 kartonów), 765433 (20 kartonów),765434 (20 kartonów),765435 (20 kartonów),765436 (20 kartonów).

Suma 110 kartonów.

Ale 765432 1/3, 765432 2/3, 765432 3/3 to jedna i ta sama awizacji tylko rozdzielona na 3, dla której tylko raz powinno policzyć 10 kartonów, a nie 3 razy.

Prawidłowa ilość karonów to 90.

Tabela: appt
Kolumna: awizacja (numer awizacji 6 cyfr), kartony (ilość kartonów w awizacji)

Jak zmodyfikować tego SQLa powyższego, żeby  mi poprawnie sumowało bez powtórzen.

0

SELECT awizacja, SUM(appt.kartony) FROM appt
FROM (SELECT DISTINCT LEFT(awizacja,6)
as awizacja, (appt.kartony) FROM appt) as appt GROUP by 1

0
Marcin.Miga napisał(a):

SELECT awizacja, SUM(appt.kartony) FROM appt
FROM (SELECT DISTINCT LEFT(awizacja,6)
as awizacja, (appt.kartony) FROM appt) as appt GROUP by 1

Witam!

Wkleiłem i wyskoczył błąd:

Błąd bazy danych, nie można wykonać zapytania do bazy Błąd MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM (SELECT DISTINCT LEFT(awizacja,6) as awizacja, (kartony) FROM appt) as appt' at line 1

0
Marcin.Miga napisał(a):

SELECT awizacja, SUM(appt.kartony) FROM appt
FROM (SELECT DISTINCT LEFT(awizacja,6)
as awizacja, (appt.kartony) FROM appt) as appt GROUP by 1

Zadziałało nawet nie zauważyłem tego podwójnego FROM;) tylko oprócz tego, że sumuje kartony do danego numeru awizacji to powinno sumować wszystkie kartony razem dla wszystkich awizacji! i podawać łączną sumę kartonów ;)
Z góry dzięki.

0

Dopisz na końcu with rollup i zobacz, co się stanie :)

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