Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie ze złączeniem przy braku rekordów
Forum PHP.pl > Forum > Bazy danych
sadu
Witam

Mam prostą bazę do robienia ankiet. Tabele Poll która ma złączenie z Question która ma złączenie z Answers która ma złączenie z Result

Mając ID ankiety (Poll) chcę policzyć ile razy ktoś odpowiedział na daną odpowiedz (Answers => Result)

Robie takie zapytanie:

  1. SELECT poll_Answer.AnswerID, COUNT(poll_Answer.AnswerID) AS liczba, poll_Answer.AnswerText
  2. FROM poll_Answer LEFT JOIN poll_Result ON poll_Answer.AnswerID = poll_Result.AnswerID
  3. INNER JOIN poll_Question ON poll_Question.QuestionID = poll_Answer.QuestionID
  4. WHERE (poll_Question.PollID = @PollID)
  5. GROUP BY poll_Answer.AnswerID, poll_Answer.AnswerText


Ale gdy nie ma żadnej odpowiedzi zwraca mi ze liczba = 1, co jest błędem ale nie wiem jak go ominąć.

Z góry dzięki za pomoc.
SongoQ
A nie lepiej pogrupowac odpowiedzi po ankiecie i do tego dolaczyc wyniki do ankiety?
sadu
Mogę prosić o więcej szczegółów ? winksmiley.jpg
SongoQ
W podzapytaniu liczysz ile jest odpowiedzi do danej ankiety to jest grupowane po ankieta_id i to dolanczasz do ankiety left joinem wtedy jesli nie ma odpowiedzi to dolaczy NULL wiec tylko zostaje zamiana nula na 0
sadu
ale ja nie chce policzyć ile razy ktoś odpowiedział na dana ankietę ( Poll ) a ile razy odpowiedział na daną odpowiedz w Ankiecie

Result ( tworze rekord jak ktos odpowie ) ma wiele Answer ( opcje do pytania ), Answer ma jedno Question (pytanie) a Question ma jedna Poll ( Ankieta )
SongoQ
Ok, to byl tylko przyklad. Chodzilo mi o pomysl jak policzyc. Sprobuj to przelozyc do Twojego przykladu.
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.