MrMojoMedlem sedan okt. 200461 inlägg Ok, då var vi här igen. :r
Jag har en kodsnutt som ser ut så här:
SELECT *
FROM Anmalningar
WHERE Kurs = 'MMColParam'
ORDER BY Namn ASC
Hämtar 'MMColParam' med 'Request.QueryString("Kursnr")'
Det funkar bra. Men om jag vill hämta "kursnr" + ordet "reserv". Hur ska det se ut då?
LarsGMedlem sedan dec. 200012 464 inlägg Vad menar du med att hämta ordet reserv? Kan du exemplifiera vilket resultat du vill ha?
Engine^Medlem sedan dec. 20003 887 inlägg SELECT *
FROM Anmalningar
WHERE Kurs = 'MMColParam' + 'reserv'
ORDER BY Namn
:q
MrMojoMedlem sedan okt. 200461 inlägg Tjock
Åh, jag är så tjock i huvudet. Tack för hjälpen... :r
MrMojoMedlem sedan okt. 200461 inlägg En fortsättning...
Här är en liten fortsättning på detta problem.
Jag har denna query som hämtar antal anmälda till kurserna. Det funkar fint.
SELECT kurs.kursnr, kurs.steg, anmalningar.kurs, count (anmalningar.kurs) as antal
FROM kurs left outer join Anmalningar on kurs.kursnr = anmalningar.kurs
group by kurs.kursnr, Anmalningar.kurs, kurs.steg, kurs.kursnr
Om jag gör så här:
SELECT kurs.kursnr, kurs.steg, anmalningar.kurs, count (anmalningar.kurs) as antal
FROM kurs left outer join Anmalningar on kurs.kursnr + 'reserv' = anmalningar.kurs
group by kurs.kursnr, Anmalningar.kurs, kurs.steg, kurs.kursnr
Då funkar det att räkna de som är anmälda som reserver. Men hur gör jag för att kunna räkna ut alla som är anmälda och även räkna alla reserver samtidigt? Jag vill alltså visa resultaten i 2 olika fält. Inte sammanslaget.
LarsGMedlem sedan dec. 200012 464 inlägg Hmm Hur är din datamodell? Det ser ut som om du för varje kurs har två namn, dvs
tractorpulling
tractorpullingreserv
knyppling
knypplingreserv
vilket verkar konstigt. Om detta är sant skulle jag rekommendera att du gjorde om modellen.
LarsGMedlem sedan dec. 200012 464 inlägg Ja, stämmer min hypotes om din datamodell?
LarsGMedlem sedan dec. 200012 464 inlägg För att med nuvarande design få ut antalet anmälningar uppdelat på reserv och icke reserv (om jag har förstått rätt)
SELECT kurs.kursnr,
kurs.steg,
count (anmalningar.kurs) as antal,
(select count(*)
from anmalningar a
where a.kurs = kurs.kursnr + 'reserv')
FROM kurs
left outer join Anmalningar on kurs.kursnr = anmalningar.kurs
where kurs.kursnr not like '%reserv'
group by kurs.kursnr, kurs.steg
Ovanstående fråga är nog inte speciellt effektiv
Rent designmässigt så tycker jag att det vore bättre att ha ett namn på kursen och istället har man en extra kolumn (med värdet 0 eller 1 t.ex.) i anmälningar som anger om man är reserv eller inte.
SELECT kurs.kursnr,
kurs.steg,
sum(case when reserv = 0 then 1 end) as antal,
sum(reserv) as reserver
FROM kurs
left outer join Anmalningar on kurs.kursnr = anmalningar.kurs
group by kurs.kursnr, kurs.steg
MrMojoMedlem sedan okt. 200461 inlägg Provade din kod ovan. Tyvärr ger den inga resultat på reserverna.