Detta kan ni använda när ni bygger en omröstningsfunktion.
Koden ska fungera i dom flesta databaser. Inte i Oracle då, där använder man || för att slå ihop flera strängar.
SQL fråga för att skapa tabellerna
CREATE TABLE poll_questions (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
question VARCHAR(512),
date_from DATE,
date_to DATE,
PRIMARY KEY(id)
);
CREATE TABLE poll_answers (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
question_id INT UNSIGNED,
answer VARCHAR(100),
votes INT UNSIGNED DEFAULT 0,
PRIMARY KEY(id)
);
SQL fråga som returnerar
* Frågan
* Svarsalternativ
* Totalt antal röster / fråga
* Antal röster / svarsalternativ
* Röstningsresultat i procent
SELECT
q.id question_id,
q.question,
a.id answer_id,
a.answer,
(
SELECT
SUM(votes)
FROM
poll_answers a
WHERE
a.question_id = q.id
LIMIT 1
) total_votes_per_question,
(
SELECT
votes
FROM
poll_answers a
WHERE
a.question_id = q.id
AND a.id = answer_id
LIMIT 1
) votes_per_answer,
(
SELECT
CONCAT(ROUND((votes / total_votes_per_question) * 100),'%')
FROM
poll_answers a
WHERE
a.question_id = q.id
AND a.id = answer_id
LIMIT 1
) vote_percentage_per_answer
FROM
poll_questions q,
poll_answers a
WHERE
a.question_id = q.id
Detta tips skapades 2007-12-14 15:36:31 av chrillemeter. Det har lästs 437 gånger. ||