Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Grupowanie i wyszczególnianie rekordów
Forum PHP.pl > Forum > Przedszkole
marck
Chciałbym zrobić coś takiego:

Mam tabelę z rekordami:

id | prod_id | ilosc szt | ilosc m
-----------------------------------
1 | 1 | 10 | 2
2 | 1 | 21 | 4
3 | 6 | 11 | 3
4 | 6 | 12 | 4
etc.

chciałbym na jednym zapytaniu (chyba za pomocą aliasów) zdziałać taki efekt by w nagłówku była suma rekordów, poniżej jej wyszczególnienie

prod_id | ilosc szt | ilosc m
1 | 31 | 6
-----------------------------
1. 10 2
2 21 4

6 | 23 | 7
------------------------------------
3 11 3
4 12 4

Sumy można otrzymać przez SUM(ilosc_szt) GROUP BY prod_id, ale jak otrzymać sumy i detale zarazem?
Mógłby ktoś pomóc w sformułowaniu sensownego zapytania?
loko0
Kod
SELECT prod_id, SUM(ilosc_szt), SUM(ilosc_m) FROM tabela
UNION
SELECT prod_id,ilosc_szt,ilosc_m FROM tabela

Powyższe zapytanie nie pobierze danych dokladnie tak, jak chcesz i wydaje mi się, że jednym zapytaniem tego nie rozwiążesz. Możesz pobrać oddzielnie sumy, oddzielnie szczegoly i potem w pętli w php jest odpowiednio wyświetlić.
TomASS
Nie pobierzesz tego jednym zapytaniem (zapytanie zrobione przez loko to defacto dwa zapytania) z jednej przyczyny - jak robisz operację grupową na jakiejś kolumnie (SUM, COUNT itp.) to nie możesz zrobić operacji "pojedynczej", masz kilka wyjść:
1. Union tak jak poleca kolega loko
2. zliczyć to w PHP (nie obciąża bazy)
3. jedno zapytanie które zwróci szczegóły i jedno które podsumowanie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.