![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) ![]() ![]() |
witam mam takie pytanie do bazy
działa spoko, problem w tym, że statusów mam 5, a on wyświetla tylko 2 (ponieważ na chwile obecną tylko 2 są używane). jak już w zapytaniu zrobić coś takiego, IF COUNT IS NULL to count(k.id_statusu) = 0 cos identycznego jak NVL w oraclu, czytalem cos o CASE - ale nie umiem zastosować :/ ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 70 Dołączył: 13.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewny, ale:
Kod IF(k.id_statusu IS NULL, 0, COUNT(k.id_statusu)) AS ile
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) ![]() ![]() |
niestety takie cos:
nie działa, nie wyrzuca błędu, ale nie zwraca tez wierszy z cyferką 0 :/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz tak powinno dzialac
W kolumnie wynik masz liczbe 0 gdy jest NULL lub liczbe zliczoną przez count gdy nie jest null Ten post edytował kefirek 23.01.2009, 12:44:12 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) ![]() ![]() |
nie działa, ale może wytłumaczę jeszcze jak ta baza u mnie wygląda - bo może zupełnie inaczej trzeba się za to zabrać.
mam tabele stausy a w niej ID_statusu | nazwa statusu (mam: 1,podłączony; 2,niepodłączony;3,zainteresowany;4odłączony) i tabele z klientami gdzie mam całą masę informacji w tym id_klienta i id_statusu. i teraz chciałbym sobie zrobić menu - w ktorym pokazałoby mi się że podłączonych mam 60 klientów, niepodłączonych 20, a zainsteresowanych 0 i odłączonych 0. to zapytanie które na samym szczycie wkleiłem działa dobrze ale pomija te wartości (zainteresowany i odłączony) z tabeli statusy - które nie są przypisane żadnemu klientowi - wiec chyba nawet tego nie wyciąga z bazy. ale czy jest jakaś opcja zeby w tym samym zapytaniu wyciągnął to z bazy i napisał 0 ? |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Pobierz statusy i counta i dolacz (LEFT JOIN) klientow i group po id statusu:
Lekko zmodyfikowany Kod @kitol'a powinien dzialac
to da ci 0 dla statusow dla ktorych brak klienta |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) ![]() ![]() |
dzieki dj_bonzo działa jak powinno, nie wiem dlaczego ale zawsze unikałem LEFT i RIGHT JOINów, zawsze robiłem tak jak pokazałem, ale widze ze będe się musiał także do tej metody przekonać.
jeszcze raz dzieki! |
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Twoja notacja to po prostu INNER JOIN, a potrzebujesz OUTERA (co daje ci LEFT/RIGHT JOIN)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 12:42 |