Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Łączenie kilku rekordów z jednej tabeli
MateuszRyaN
post 5.07.2012, 15:06:52
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

Ostrzeżenie: (0%)
-----


Witam, mam pytanko odnośnie pewnego zapytania w MySQL.
Chodzi o system faktur, każdy towar na danej fakturze zawiera numer faktury jako id_faktury, czyli jeżeli fakturke wystawiono na jakies 3 produkty mam 3 rekordy o róznych ID z auto increment oraz takimi samymi ID_FAKTURY. NP:

id - id_faktury - towar - kwota_brutto
1 - 1 - produkt1 - 15zł
2 - 1 - produkt2 - 10zł
3 - 1 - produkt3 - 5zł
4 - 2 - produktx - 20zł
5 - 2 - produkty - 1zł

Czy da sie wykonać jedno zapytanie, i puścić to przez tablice asocjacyjną, żeby wyświetlic taki wynik:

faktura nr 1 - produkt1,produkt2,produkt3 - 30zł
faktura nr 2 - produktx,produkty - 21zł

domyslam sie ze na kilku zapytaniach i jakiejś tabeli pomocniczej bez problemu mozna to zrobić...ale czy jest możliwośc zminimalizowania tego do jednego max 2 zapytańquestionmark.gif
Go to the top of the page
+Quote Post
Kshyhoo
post 5.07.2012, 17:39:29
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




  1. SELECT id, id_faktury, towar, kwota_brutto,
  2. GROUP_CONCAT(towar SEPARATOR ', ') towar_razem,
  3. SUM(kwota_brutto) AS wartosc_laczna
  4. FROM faktury
  5. WHERE id_faktury=1

Warunek, że chcesz sumować liczby (15+10+5) a nie (15zł+10zł+5zł).
Wynik w SQL:
  1. id id_faktury towar kwota_brutto towar_razem wartosc_laczna
  2. 1 1 produkt1 15 produkt1, produkt2, produkt3 30


A czekaj, bo Ty chcesz listę... to trochę inaczej. Muszę pomyśleć tongue.gif

  1. SELECT id_faktury,
  2. SUM(kwota_brutto) AS laczna_cena,
  3. GROUP_CONCAT(towar SEPARATOR ', ') towar_razem
  4. FROM faktury
  5. GROUP BY id_faktury

Co da w SQL:
  1. id_faktury laczna_cena towar_razem
  2. 1 30 produkt1, produkt2, produkt3
  3. 2 21 produkt4, produkt5


Ten post edytował Kshyhoo 5.07.2012, 17:40:52


--------------------
Go to the top of the page
+Quote Post
MateuszRyaN
post 6.07.2012, 08:05:52
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

Ostrzeżenie: (0%)
-----


Jesteś człowieku genialny ;P Niech Cie Bóg błogosławi. Łap SOGa.
Wszystko jasne załatwione, temat do zamknięcia smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 13:03