19. februar 2003 - 21:25
Der er
1 kommentar og
1 løsning
Count
Er gået helt kold... Jeg er ved at lave et booking system...
Jeg har to databaser:
1 med selve event oplysningerne (Kaldet event_db)
og 1 med alle booking oplysninger (Kaldet booking_db)
Nu skal jeg gerne have den til at regne antal ledige pladser ud, og det er her jeg ikke kan komme videre ;(
Den skal regne alle pladser sammen der i 'booking_db' for hver eventid 1 og 2 og 3 og 4 osv. derefter skal den tage disse tal og trække fra selv eventerne der i 'event_db'
men hvordan ????
Puhh sikke en smøre :) sig lige til hvis i ikke helt forstår hvad jeg mener....
19. februar 2003 - 23:10
#1
Du kan hente antal pladser for hver af de fire events i booking_db med:
SELECT eventid, SUM(bookede_pladser) AS BookedePladser FROM booking_db WHERE eventid in (1,2,3,4) group by eventid
Altså for hver unik eventid vil jeg have summen af antal bookede_pladser i hver booking. (går ud fra at man kan booke flere pladser pr bestilling)
Så skal vi lige have pladserne med i regnestykket.
SELECT event_db.eventid, event.pladser_ialt-SUM(bookede_pladser) AS LedigePladser FROM event_db, booking_db WHERE event_db.eventid in (1,2,3,4) AND event_db.eventid=booking_db.eventid group by event_db.eventid
Nogen databaser vil ikke kunne klare event.pladser_ialt-SUM(bookede_pladser) umiddelbart.
Så må du hente de to felter separat. Men er så også nødt til at tilføje event.pladser til Group BY
SELECT event_db.eventid, event.pladser_ialt, SUM(bookede_pladser) AS LedigePladser FROM event_db, booking_db WHERE event_db.eventid in (1,2,3,4) AND event_db.eventid=booking_db.eventid group by event_db.eventid, event.pladser_ialt
Samme metode kan bruges hvis du samtidigt har brug for flere felter fra event_db - tilføj dem til SELECT og GROUP BY.
- Morten