webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Programmering & Utveckling > Databashanterare & SQL

Databashanterare & SQL Diskussioner om databashanterare och SQL. Exempelvis DML, DDL, MySQL, MS SQL Server samt datamodellering.

Svar
 
Trådverktyg Visningsalternativ
Äldre 2012-05-23, 06:32   #1
Sasch
Medlem
 
Saschs avatar
 
Registrerad: 2002-11-02
Ort: Hällingsjö
Inlägg: 220
Lösningar: 2
Dynamisk Poll / Omröstning

Hej!

Sitter och meckar med en omröstning och jobbar mot mySQL. Har dock fastnat och verkar inte komma frammåt när det kommer till att visa resultatet;

Kod:
tbl_poll

 ID
 Question - Frågan
 Active - Hurvida omöstningen går att rösta i (1/0)

tbl_pollanswers ( votes )

 uID  -> tbl_user.id
 qID  -> tbl_poll.id
 aID  -> tbl_pollalternative.id

tbl_pollalternative

 ID
 qID
 Name
Kod:
  SELECT Name, poll.Question
    FROM pollalternative JOIN poll
      ON (pollalternative.qID = poll.ID)
   WHERE poll.Active = 1
SQL-frågan genererar en fråga + alla alternativ till den. Jag har dock ingen aning om hur jag ska få in tbl_pollanswer samt räkna ut summan av all röster på frågan, samt alla röster på varje enskilt alternativ. Jag vill ogärna behöva loopa ut varje alternativ och ge dom var sin separata SQL-sats för att sedan göra en server-side uträkning.

Är det möjligtvis någon som har lite hjälp att bidra med?
__________________
"1 + 1 = 11"
Sasch besöker inte forumet just nu   Svara med citat
Äldre 2012-05-25, 02:02   #2
Sasch
Medlem
 
Saschs avatar
 
Registrerad: 2002-11-02
Ort: Hällingsjö
Inlägg: 220
Lösningar: 2
Jag har funderat lite och uppdaterat Queryn till följande:
Det ger fortarande inte tillfredsställande resultat dock.

Kod:
  SELECT Name, poll.Question, COUNT(qID) as SubTot
    FROM pollalternative JOIN poll
      ON (pollalternative.qID = poll.ID) JOIN pollanswer
      ON (pollalternative.qID = pollanswer.qID)
   WHERE poll.Active = 1
GROUP BY pollalternative.qID, pollalternative.uID
__________________
"1 + 1 = 11"
Sasch besöker inte forumet just nu   Svara med citat
Äldre 2012-05-25, 07:56   #3
Gildebrand
Medlem
 
Registrerad: 2009-06-06
Inlägg: 910
Lösningar: 18
Skriv ut hur tabellerna ser ut, exempel på hur datat ser ut, och hur resultatet ska se ut så kan jag nog hjälpa dig
Gildebrand besöker forumet just nu   Svara med citat
Äldre 2012-06-02, 09:55   #4
aasah
Medlem
 
Registrerad: 2003-03-16
Ort: Stockholm
Inlägg: 3 377
Lösningar: 64
Vad är det du vill ha ut? Alla frågor, deras alternativ samt hur många som valt dessa? I så fall:

sql:
 
SELECT
P.Question,
A.Name,
COUNT(DISTINCT C.uid) -- Givet att varje person har en röst, annars COUNT(C.uid)
FROM
tbl_poll P
INNER JOIN tbl_pollalternative A ON
P.ID = A.qID -- Detta är samma ID (polls)
LEFT JOIN tbl_pollanswers C ON -- Choices folk har gjort
A.ID = C.aID AND -- Detta är samma ID (alternativens)
P.ID = C.qID -- Detta är samma ID (polls)

WHERE
P.Active = 1
aasah besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Programmering & Utveckling > Databashanterare & SQL

Etiketter
omröstning, poll, sql

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 00:40.


Powered by: vBulletin Version 3.8.6
Copyright © webForum