![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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) -------------------- |
|
|
![]()
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 |
|
|
![]()
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. -------------------- |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 06:21 |