Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]time problem z wynikiem zapytania warunkowego
Forum PHP.pl > Forum > Przedszkole
jacusek
Witam.
Mam oto taki problem. W jednej z kolumn mam dane przechowywanie w formacie time - nazwa kolumny czas_pol. Część wartości jest w formie 00:00:00, więc warotość jest zerowa (nie nullowa).
Kiedy zadaję takie pytanie:
  1. SELECT DISTINCT date_format(czas,'%Y-%m-%d') AS DATA,
  2. count(*) AS liczba_tel_dzien,
  3. count(IF(czas_pol=0,id_pol,NULL))
  4. FROM telefony
  5. GROUP BY 1

W przypadku tego zapytania dostaję odpowiedź wszędzie 0 (w kolumnie dot czas_pol), a chciałbym żeby zliczał liczbę połączeń, gdzie czas_pol=00:00:00
kombinowałem już taką opcję
  1. count(IF(time_to_sec(czas_pol)=0,id_pol,NULL))

ale niestety również bezskutecznie.
pmir13
  1. SELECT date(czas) AS DATA,
  2. count(*) AS liczba_tel_dzien,
  3. sum(czas_pol=0) AS liczba_tel_zero
  4. FROM telefony
  5. GROUP BY DATA


1. Format jaki używasz dla date_format() jest domyślny dla mysql, można więc po prostu date(czas)
2. Distinct jest niepotrzebny, bo i tak grupujesz po dacie.
3. W group by lepiej używać nazw kolumn lub aliasów, numery kolumn wychodzą ze standardu.
4. (czas_pol=0) będzie wynosić 1 jeśli to prawda dla danego rekordu i 0 jeśli fałsz, więc suma tego da nam ilość połączeń z zerowym czasem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.