19. august 2004 - 21:41Der er
16 kommentarer og 1 løsning
Hjælp til SQL sætning - flere tabeller
Jeg har flg. tabeller hvor jeg bruger følgende kolonner
read - tekst [tal] - antal [tal]
user - id [tal/auto] - opsagt [true/false]
anmeldelser - id [tal/auto] - forfatter [tal]
Og så til det sjove.
Jeg skal have lavet en SELECT SUM(antal) as total - fra read tabellen. Medfølgende kriterier. Den henter id fra user, tager derefter alle de anmeldelser hvor feltet forfatter er = med user.id. Derefter skal jeg have summen af alle de felter fra read, hvor tekst er = med anmeldelser.id
Jeg skal have dne til at udskrive alle konlonner fra user hvor opsagt = false.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Skal det være en totale sum, eller en sum pr user?
Eksempel på SQL som laver en sum pr. user ID.
SELECT Sum(read.antal) AS antal, user.ID FROM read INNER JOIN (user INNER JOIN anmeldelser ON user.id = anmeldelser.forfatter) ON read.teskt = anmeldelser.id GROUP BY user.ID, user.opsagt HAVING (((user.opsagt)=False));
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function.
Set RS_u = Server.CreateObject("ADODB.RecordSet") RS_u.open "SELECT Sum(read.antal) AS antal, users.id FROM read INNER JOIN (users INNER JOIN anmeldelser ON users.id = anmeldelser.forfatter) ON read.teskt = anmeldelser.id GROUP BY user.id, users.opsagt HAVING (((users.opsagt)=False));" , Conn_crew, 1,3 Do while not RS_u.eof %> <tr> <td bgcolor="#efefef" valign="middle" style="font-family: verdana; font-size: 11px;"> <%=RS_u("firstname")%> <%=RS_u("lastname")%> </td><td><%=StrTotal%></td></tr> <% RS_u.movenext loop %>
giver et lidt bedre indtryk. - Noget jeg glemte tabellen read har et felt der hedder [Type] til skal være = anmeldelse
RS_u.Open "SELECT user.id, Sum(read.antal) AS SumOfantal, user.opsagt FROM (user INNER JOIN anmeldelser ON user.id = anmeldelser.forfatter) INNER JOIN read ON anmeldelser.id = read.teskt GROUP BY user.id, read.Type, user.opsagt HAVING (((read.Type)='anmeldelse') AND ((user.opsagt)=False));", Conn_crew,1,3
RS_u.Open "SELECT users.id, Sum(read.antal) AS SumOfantal, user.opsagt FROM (users INNER JOIN anmeldelser ON users.id = anmeldelser.forfatter) INNER JOIN read ON anmeldelser.id = read.teskt GROUP BY users.id, read.Type, users.opsagt HAVING (((read.Type)='anmeldelse') AND ((users.opsagt)=False));", Conn_crew,1,3
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
Ok det så fordi den ikke lige nu henter firstname og lastname ud så du må SQL til denne:
RS_u.Open "SELECT Sum(read.antal) AS SumOfantal, user.firstname, user.lastname FROM user INNER JOIN (anmeldelser INNER JOIN read ON anmeldelser.id = read.teskt) ON user.id = anmeldelser.forfatter GROUP BY read.Type, user.opsagt, user.firstname, user.lastname HAVING (((read.[Type])="anmeldelse") AND ((user.opsagt)=False));", Conn_crew,1,3
RS_u.Open "SELECT Sum(read.antal) AS SumOfantal, users.firstname, users.lastname FROM users INNER JOIN (anmeldelser INNER JOIN read ON anmeldelser.id = read.teskt) ON users.id = anmeldelser.forfatter GROUP BY read.Type, users.opsagt, users.firstname, users.lastname HAVING (((read.[Type])="anmeldelse") AND ((users.opsagt)=False));", Conn_crew,1,3 ------------------------------------------------------------------------------------- (((read.[Type])="anmeldelse") -----------------^
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.