Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem SQL
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam mam problem z konstrukcją zapytania SQL.
mam poniższy zestaw zapytań generujący mi tabelkę z wynikami,
wszystko jest dobrze z małym ale.... może zaistnieć taka sytuacja że w tabeli tab2 nie ma nazwiska które jest w tabeli xx wtedy jest pomijane, próbowałem na różne sposoby, FULL JOIN, RIGHT JOIN wszystko na nic. Znalazłem gdzieś podobny przypadek gdzie zastosowano dodatkowo UNION, ale u mnie znów klops....

  1. $ksiega=
  2. "SELECT ksiega.masa AS masa, ksiega.cena AS cena, ksiega.zwrot AS zwrot, ksiega.waluta AS waluta, ksiega.przeznaczenie AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega
  3. UNION ALL SELECT
  4. ksiega.masa1 AS masa, ksiega.cena1 AS cena, ksiega.zwrot1 AS zwrot, ksiega.waluta1 AS waluta, ksiega.przeznaczenie1 AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega
  5. UNION ALL SELECT
  6. ksiega.masa2 AS masa, ksiega.cena2 AS cena, ksiega.zwrot2 AS zwrot, ksiega.waluta2 AS waluta, ksiega.przeznaczenie2 AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega";
  7.  
  8. $ksiegabook=
  9. "SELECT imie_nazwisko, masa, cena, przeznaczenie, zwrot,
  10. case when waluta='%' && przeznaczenie='mama' then ((cena*masa)-((cena*masa)*zwrot/100))
  11. when waluta='%' && przeznaczenie='siostra' then (-(cena*masa)*(zwrot/100))
  12. when waluta='zł' && przeznaczenie='mama' then ((cena*masa)-(zwrot))
  13. when waluta='zł' && przeznaczenie='siostra' then (-zwrot)
  14. else 0 end AS saldo
  15. FROM ($ksiega) AS tab1
  16. LEFT JOIN book ON tab1.id_book=book.id_book ";
  17.  
  18. $kasap=
  19. "SELECT imie_nazwisko, SUM(kwota) AS kwota from kasa GROUP BY imie_nazwisko";
  20.  
  21. $koniec=
  22. "SELECT tab2.imie_nazwisko AS kto, tab2.masa AS masa, (SUM(saldo)+COALESCE(xx.kwota,0)) AS saldo, SUM(kwota) AS kwota
  23. FROM ($ksiegabook) AS tab2
  24. LEFT JOIN ($kasap) xx ON tab2.imie_nazwisko=xx.imie_nazwisko GROUP BY tab2.imie_nazwisko";
  25.  
  26.  
  27.  
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 22.08.2025 - 06:51