[MySQL]Grupowanie i wyszczególnianie rekordów |
[MySQL]Grupowanie i wyszczególnianie rekordów |
21.09.2010, 23:19:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 27.05.2008 Ostrzeżenie: (0%) |
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? Ten post edytował marck 21.09.2010, 23:21:05 |
|
|
22.09.2010, 08:06:19
Post
#2
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 2 Dołączył: 3.12.2003 Ostrzeżenie: (0%) |
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ć. |
|
|
22.09.2010, 10:11:36
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) |
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 Ten post edytował TomASS 22.09.2010, 10:12:39 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 05:26 |