webForumDet fria alternativet
Logga in / Bli medlem

Problem med SQL-sats.

Databaser & SQL

6 svar · 207 visningar · startad av Fredde Mannen

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

Hur kan jag få reda på hur många bokningar som gjort av en viss typ av rum om jag har endast dessa tabeller:

TABELL: rum
-------------------
rumnr
typ_avrum

TABELL: rumbokning
--------------------------
id
rumnr
bokningsnr
ankomst
avresa

Att få reda på mängden av alla typer av bokningar är ju lätt.

Men om jag har en typ som heter: enkel

hur kan jag göra en sql-sats som räknar hur många bokningar som har gjorts på rum som är av den typen?? :q

Medlem sedan mars 20032 667 inlägg
#2

Om jag fattade dig rätt borde du kunna skriva så här:

SELECT COUNT(*) AS antal
FROM rum r
INNER JOIN rumbokning rb
on r.rumnr = rb.rumnr
WHERE r.typ_avrum = 'enkel'
Medlem sedan dec. 20003 887 inlägg
#3

Eller en räkning av alla typer av bokningar

SELECT typ_avrum, Count(*)
FROM rumbokning rb
INNER JOIN rum r
  ON r.rumnr = rb.rumnr
GROUP BY typ_avrum
Medlem sedan nov. 20014 054 inlägg
#4

Okay det funkar.. men om jag vill ha det mellan två datum som finns i avresa och ankomst?

Medlem sedan nov. 20014 054 inlägg
#5

Fredde Mannen skrev:

Okay det funkar.. men om jag vill ha det mellan två datum som finns i avresa och ankomst?

    SELECT COUNT(*) AS intAntal FROM rum r INNER JOIN rumbokning rb ON r.rumnr = rb.rumnr WHERE r.typ_kod = strVal AND rb.ankomst >= datStart AND rb.avresa <= datEnd AND rb.gastid=0.

Kan det funka?

Medlem sedan dec. 200012 464 inlägg
#6

Jo, det som saknas är att du anger datumvärden inom ' (# om det är access 2000 eller äldre)

SELECT COUNT(*) AS intAntal 
FROM rum r INNER JOIN rumbokning rb 
ON r.rumnr = rb.rumnr 
WHERE r.typ_kod = strVal 
AND rb.ankomst >= '2003-12-24' 
AND rb.avresa <= '2003-12-31'
AND rb.gastid=0
Medlem sedan nov. 20014 054 inlägg
#7

LarsG skrev:

Jo, det som saknas är att du anger datumvärden inom ' (# om det är access 2000 eller äldre)

SELECT COUNT(*) AS intAntal 
FROM rum r INNER JOIN rumbokning rb 
ON r.rumnr = rb.rumnr 
WHERE r.typ_kod = strVal 
AND rb.ankomst >= '2003-12-24' 
AND rb.avresa <= '2003-12-31'
AND rb.gastid=0

Vet det! =) Men tack ändå... men detta rör sig varken om Access, MySQL, Oracle, SS, Informix, utan om Progress! Buuuwäää... tycker inte om progress, speciellt inte som programmeringsspråk! :l :)

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