Sitter och pular med en liten omröstning och undrar... Jag har lite datum och själva frågan i en tabell samt alla olika svarsalternativ i en annan tabell. När jag ska visa uppgifterna använder jag inner join för att hämta respektive svarsalternativ till frågorna. Dessutom öppnar jag ett recordset med summan av alla röster grupperat på ID:t från frågetabellen för att kunna räkna ut "procenten". Frågan är, kan jag kombinera dessa två SQL-strängar och få endast ett recordset? jodå, det går, men det blir inte särskilt vackert: Tycker ditt alternativ är bättre. Men I Access måste du spara det som en fråga. Kan inte använd paranteser. Tackar för hjälpen! Anledningen är att det känns inte helt 100 att man får rätt "gruppsumma" till rätt fråga om man delar upp det på två recordset. Det går ju att ordna med sortering efter ID o.s.v. men jag ville ändå kolla alternativen.Kombinera två SQL-strängar
<code>
StrSQLa = ("SELECT Questions.QID, Questions.Question, Questions.StartDate, Questions.StopDate, Answers.AID, Answers.Answer, Answers.Votes FROM Questions INNER JOIN Answers ON Questions.QID = Answers.QAID")
Set ObjRSa = Connect.Execute(StrSQLa)
</code>
Och
<code>
StrSQLs = "SELECT SUM(Votes) AS SumVotes FROM Answers Group By QAID"
Set ObjRSs = Connect.Execute(StrSQLs)
</code>Sv: Kombinera två SQL-strängar
<code>
SELECT Questions.QID, Questions.Question,
Questions.StartDate, Questions.StopDate,
Answers.AID, Answers.Answer, Answers.Votes, sumv.SumVotes
FROM Questions
INNER JOIN Answers ON Questions.QID = Answers.QAID
LEFT OUTER JOIN
(SELECT QAID, SUM(Votes) AS SumVotes FROM Answers Group By QAID) sumv ON sumv.QAID = Answers.QAID
</code>Sv: Kombinera två SQL-strängar
Annars kan man ju använda underfråger. Vilket inte är att rekomendera eftersom en fråga exetueras för varje post i urvalet.
<code>
strSQL = "SELECT Questions.QID, Questions.Question, Questions.StartDate, Questions.StopDate, Answers.AID, Answers.Answer, Answers.Votes, (SELECT SUM(Votes) FROM Answers WHERE Questions.QID = Answers.QAID) AS SumVotes" & vbCrLf & _
"FROM Questions LEFT JOIN" & vbCrLf & _
" Answers ON Questions.QID = Answers.QAID"
Set ObjRSa = Connect.Execute(StrSQLa)
</code>Sv: Kombinera två SQL-strängar