webForumDet fria alternativet

Problem med SQL-sats.

6 svar · 207 visningar · startad av Fredde Mannen

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#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

K@llenMedlem sedan mars 20032 654 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'
Engine^Medlem sedan dec. 20002 861 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
Fredde MannenMedlem sedan nov. 20013 498 inlägg
#4

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

Fredde MannenMedlem sedan nov. 20013 498 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?

LarsGMedlem sedan dec. 200012 465 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
Fredde MannenMedlem sedan nov. 20013 498 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 :)

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb