webForumDet fria alternativet
Logga in / Bli medlem

Select (case...

Databaser & SQL

9 svar · 283 visningar · startad av lillen_009

Medlem sedan nov. 2002137 inlägg
Trådstart#1

Jag vill byta ut 'LagX' mot '" & RS("Name") & "'
Får det inte att fungera med att bara sätta in det på plats

select sum (case when hemmalag = 'LagX' then hemmap
when bortalag = 'LagX' then bortap 
else 0 end) as totp
from games;
Medlem sedan dec. 200012 464 inlägg
#2

Du måste börja använda join.

select team, 
(select sum (case when hemmalag = t.team then hemmap
when bortalag = t.team then bortap 
else 0 end) 
from games ) as totp 
from teams as t
Medlem sedan nov. 2002137 inlägg
#3

Ursäkta att jag inte kollat svaret förräns nu, men jag har varit (är)på semeter.

Är

case when hemmalag = t.team

samma sak som

case when hemmalag = RS("Name")

?

Jag upprepar denna sats för varje post i RS("name"). Därav tänkte jag att man ska använda RS("name") eftersom det är den som styr vad som ska hämtas.

Medlem sedan dec. 200012 464 inlägg
#4

Nej, du behöver inte blanda in recordset alls. Det behövs enbart en fråga.

Medlem sedan nov. 2002137 inlägg
#5

Hmm

Så här ser det ut. Har nu satt in de namnen jag använder. Gör jag som LarsG fick jag syntaxfel direkt efter select name (vi kommatecknet - så jag tog bort det...)

Detta avänder jag:

SQL12 = "select Name (select sum (case when Hometeam = t.name then homepoint when awayteam = t.name then awaypoint else 0 end) from games ) as totp from teams as t"

Och får följande fel:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near '(select sum (case when Hometeam = t.name then homepoint when awayteam = t.name t' at line 1

(Visst kan man väl använda name? Eller är det ett förbjudet ord i MySQL)

Medlem sedan juni 200032 967 inlägg
#6

Vilken version av MySQL använder du? Det skall till en ganska ny version för att subselects ska stödjas.

Ett tips är att alltid ange vilken dbms och version som används, eftersom svaren ofta ser olika ut.

Mvh

Medlem sedan mars 20032 667 inlägg
#7

@nders skrev:

Vilken version av MySQL använder du? Det skall till en ganska ny version för att subselects ska stödjas.

Närmare bestämt version 4.1.x eller nyare. :)

Medlem sedan mars 20032 667 inlägg
#8

Re: Hmm

lillen_009 skrev:

(Visst kan man väl använda name? Eller är det ett förbjudet ord i MySQL)

Du har listan här:
http://www.mysql.com/doc/en/Reserved_words.html

Medlem sedan nov. 2002137 inlägg
#9

Aha, kanske det var det..

Jag verkar använda den uråldriga versionen 3.23.56

ska genast prova att uppdatera

Medlem sedan mars 20032 667 inlägg
#10

Re: Aha, kanske det var det..

lillen_009 skrev:

Jag verkar använda den uråldriga versionen 3.23.56

ska genast prova att uppdatera

Notera att 4.1.x inte är en stabil mysql-version.

260 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)