Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Łączenie danych z kilku tabel
kaster
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


[php][/php]Witam,
Potrzebuję pomocy w zakresie napisania zapytania do bazy MySQL aby otrzymać konkretny wynik

Posiadam 2 tabele z jednym wspólnym elementem ID_KLIENTA

tabela_1 (LP, ID_KLIENTA, IMIĘ, NAZWISKO)
+--------+-----------------+-----------+----------------+
| LP | ID_KLIENTA | IMIĘ | NAZWISKO |
+--------+-----------------+-----------+----------------+
| 1 | 1 | Jan | Kowalski |
+--------+-----------------+-----------+----------------+
| 2 | 2 | Barbara | Kulig |
+--------+-----------------+-----------+----------------+
| 3 | 3 | Grzegorz | Krawczyk |
+--------+-----------------+-----------+----------------+

tabela_2 (LP, ID_KLIENTA, NALEŻNOŚĆ, WPŁATA)

+--------+-----------------+---------------+-----------+
| LP | ID_KLIENTA | NALEŻNOŚĆ | WPŁATA |
+--------+-----------------+---------------+-----------+
| 1 | 1 | 100 | |
+--------+-----------------+---------------+-----------+
| 2 | 2 | 100 | |
+--------+-----------------+---------------+-----------+
| 3 | 3 | 100 | |
+--------+-----------------+---------------+-----------+
| 4 | 1 | | 100 |
+--------+-----------------+---------------+-----------+
| 5 | 2 | | 50 |
+--------+-----------------+---------------+-----------+

Potrzebuję otrzymać tabelę wynikową w postaci

ID_KLIENTA, IMIĘ, NAZWISKO, SALDO
+--------------+------------+--------------+----------+
| ID_KLIENTA | IMIĘ | NAZWISKO | SALDO |
+--------------+------------+--------------+----------+
| 1 | Jan | Kowalski | 0 |
+--------------+------------+--------------+----------+
| 2 | Barbara | Kulig | 50 |
+--------------+------------+--------------+----------+
| 3 | Grzegorz | Krawczyk | 100 |
+--------------+------------+--------------+----------+

dzięki za pomoc

Ten post edytował kaster 14.11.2017, 11:28:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A potrafisz łączyć tabele i grupować dane?
Jeśli tak, to saldo będzie wyrażeniem: SUM(naleznosc+wplata) lub SUM(naleznosc)+SUM(wplata)
Go to the top of the page
+Quote Post
kaster
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


Łączyć tabel niestety nie potrafię

Wynik z tabeli 2 wykonałem metodą
SELECT SUM(WPŁATY) - SUM(ZOBOWIĄZANIA) AS saldo FROM tabela_2 GROUP BY ID_KLIENTA
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jesteś całkiem blisko.
Tu jest przykład łączenia i grupowania dwóch tabel, przy czym zamiast SUM jest użycie COUNT: https://stackoverflow.com/a/45943897
Grupujesz po id_klienta.
Go to the top of the page
+Quote Post
kaster
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


Dziękuję za pomoc

SELECT tb1.ID_KLIENTA as id, tb1.IMIĘ as IMIĘ, tb1.NAZWISKO as NAZWISKO, SUM(tb2.WPŁATA) - SUM(tb2.NALEŻNOŚĆ) AS saldo FROM tabela_1 tb1 LEFT JOIN tabela_2 tb2 ON tb2.ID_KLIENTA = tb1.ID_KLIENTA GROUP BY ID_KLIENTA

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:52