Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> warunek do raportu
kmpl
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

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


Witajcie,

Mam 3 tabele:
sprzet: id_sprzetu, nazwa, indeks, JIM, ilosc
pomieszczenia: id_pomieszczenia, nr_pomieszczenia, opis
lok_sprzetu: id_l_s, id_sprzet, id_pom, iloscloksprzetu, uwagi

W tabeli sprzet mam informacje ile sprzętu i w jakiej ilości mam na stanie (obciążeniu).
W tabeli lok_sprzetu mam dane jaki sprzęt w jakiej ilości znajduje sie w danym pomieszczeniu.

Mam raport gdzie porównuję czy mam zgodnośc z ilością sprzetu z obciążenia (tabela sprzet) a tym co jest w pomieszczeniach.
Np: w tabeli sprzet mam 22 szt. komputerów na stanie a w pomieszczeniach: nr 12 - 1, nr 22 - 12. Lub jakieś ewentualne nadstany.
Zapytanie wygląda tak:

  1. SELECT nazwa, ilosc, razem, COALESCE(ilosc,0)-COALESCE(razem,0) roznica FROM jos_sprzet s LEFT JOIN (SELECT id_sprzet, SUM( iloscloksprz )
  2. razem FROM jos_lok_sprzetu GROUP BY 1 ) x ON s.id_sprzetu = x.id_sprzet


Próbuję dodać jeszcze jedną informację w wyświetlanej tabeli. Chciałbym aby była informacja na podstawie danych- "stan zgodny" lub "stan niezgodny" (przy różnicy). Kiedyś stosowałem switch case, ale w tabeli miałem dodatkowe pole id. Nie wiem za bardzo jak to ugryźć.
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie wystarczy:
  1. IF(COALESCE(ilosc,0)-COALESCE(razem,0) = 0, 'zgodny', 'niezgodny') AS stan

?

PS: Przenoszę do MySQL.
Go to the top of the page
+Quote Post
kmpl
post
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

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


Dziękuję. No super! Pewnie, że działa. Teraz zamiast kolumny różnica mam stan (zgodny, niezgodny). A żeby na koniec dodać ile wynosi różnica przy stanie niezgodnym?
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Jeśli w osobnej kolumnie to po prostu:
  1. (COALESCE(ilosc,0)-COALESCE(razem,0)) AS roznica

a jeśli ma to być doklejone do "niezgodny" to:
  1. IF(COALESCE(ilosc,0)-COALESCE(razem,0) = 0, 'zgodny', CONCAT('niezgodny ', COALESCE(ilosc,0)-COALESCE(razem,0))) AS stan
Go to the top of the page
+Quote Post
kmpl
post
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

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


Wielkie dzięki!!!
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: 14.09.2025 - 23:59