sql = "SELECT Namn, COUNT(1) AS Antal, COUNT(0) AS NegAntal FROM sport_bokningar "
sql = sql & " GROUP BY Namn ORDER BY 2 DESC, 3 DESC"
Jag vill skapa en fråga som räknar ut antalet personer som har deltagit i ett viss happening (=1 i Status kolumnen i min tabell) och som dessutom sorterar dem i ordningen mest frekventa besökare överst. Min fråga fungerade innan jag började krångla till det hela... Deltagarna fyller även i om de inte kan deltaga (=0 i status kolumnen)...
Det jag nu försöker lägga till i min fråga är att den ska sortera i första hand på de som kommer (=1) och i andra hand på de som inte kommer (=2)...
Jag får inte något fel när jag kör frågan ovan men både "Antal" och "NegAntal" blir samma värde vilket inte stämmer...
Please help...
sql = "SELECT Namn, COUNT(Status) AS Antal FROM sport_bokningar "
sql = sql & " WHERE Status = 1 GROUP BY Namn ORDER BY 2 DESC"
sql2 = "SELECT Namn, COUNT(Status) AS NegAntal FROM sport_bokningar "
sql2 = sql2 & " WHERE Status = 0 GROUP BY Namn ORDER BY 2 DESC"
Hmmm... Tydligen så fungerar inte Count som jag trodde. Ovan fungerar som jag vill MEN hur slår jag ihop dessa frågor så att det blir en och samma record set????
LarsGMedlem sedan dec. 200012 464 inlägg select namn,
sum(case when status = 1 then 1 else 0 end) as s1,
sum(case when status = 0 then 1 else 0 end) as s2
from sport_bokningar where status in (1,2)
group by name order by s1,s2
Sen så beror det på vilken databashanterare du har om det fungerar eller inte
sql = "select namn, "
sql = sql & " sum(case when status = 1 then 1 else 0 end) as s1, "
sql = sql & " sum(case when status = 0 then 1 else 0 end) as s2 "
sql = sql & " from sport_bokningar where status in (1,2) "
sql = sql & " group by name order by s1,s2 "
Ger följande fel:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'sum(case when status = 1 then + 1 else 0 end)'.
/kopia av staff_sport/page_design.asp, line 36
Jag kör access 97 som databas...
Spelar du innebandy, Lars G? :q
LarsGMedlem sedan dec. 200012 464 inlägg Ok, access-specifik lösning
sql = "select namn, "
sql = sql & " sum(iif(status = 1,1,0) as s1, "
sql = sql & " sum(iif(status = 0,1,0) as s2 "
sql = sql & " from sport_bokningar where status in (0,1) "
sql = sql & " group by name order by 2,3 "
Spelar du innebandy, Lars G?
Jo, understundom händer det.
Hmmm... verkar som att jag har hittat en utmaning år SQL Guden Lars G... Inte varje dag...
Får följande fel när jag kör din fråga x(
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'sum(iif(status = 1,1,0) as s1, sum(iif(status = 0,1,0) as s2 from sport_bokningar where status in (0,1) group by name order by 2,3'.
/kopia av staff_sport/page_design.asp, line 43
Rad 43 är som vanligt: "set rs = connect.execute(sql)"
PS Har ni bredband så är det, om inte bra musik, en otroligt trevlig DJ som jobbar på denna radiostation. Hon är online nu (webcam). §e
Se http://www.topradio.be/windowsmedia/topavhi.asx
DS
LarsGMedlem sedan dec. 200012 464 inlägg Äsch då, det är bara parenteser som saknas
sql = "select namn, "
sql = sql & " sum(iif(status = 1,1,0)) as s1, "
sql = sql & " sum(iif(status = 0,1,0)) as s2 "
sql = sql & " from sport_bokningar where status in (0,1) "
sql = sql & " group by name order by 2,3 "
Du är verkligen gud på det här !!!! :f
sql = "select Namn, "
sql = sql & " sum(iif(Status = 1,1,0)) as Antal, "
sql = sql & " sum(iif(Status = 0,1,0)) as NegAntal "
sql = sql & " from sport_bokningar where Status in (0,1) "
sql = sql & " group by Namn order by 2 DESC,3 DESC "
Fungerar hur bra som helst. Resultatet är perfekt. Så mycket lättare livet blir när man lär sig skriva lite mer advancerade frågor istället för att sortera med ifsatser och liknande... glad som fan"!
'sql = "SELECT Namn, COUNT(Status) AS Antal FROM sport_bokningar "
'sql = sql & " WHERE Status = 1 GROUP BY Namn ORDER BY 2 DESC"
'sql = sql & " UNION "
'sql = sql & " SELECT Namn, COUNT(Status) AS NegAntal FROM sport_bokningar "
'sql = sql & " WHERE Status = 0 GROUP BY Namn ORDER BY 2 DESC"
Jag labbade lite med UNION men fick inte det resultatet jag ville ha. Men som sagt jag är inte gud på detta... Man lär sig varje dag..
Angående innebandyn, vi är ett par datanissar i Uppsala som spelar innebandy på Torsdagar klockan 21:00. Vi behöver mer folk så är du intresserad så får du höra av dig. // Mattias