Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


SELECT problem... någon?

Postades av 2003-06-16 21:28:00 - Peter Björklund, i forum access, Tråden har 7 Kommentarer och lästs av 823 personer

Jag har tre tabeller.

Booking, Room och RoomNr

I Booking lagrar jag data som rör en specifik bokning på ett hotell.
Jag lagrar här bla datum för incheckning och utcheckning.
Jag har främmande nycklar till både Room och RoomNr.

I Room lagrar jag hotellrummens olika kategorier (namn som typ bröllopsvit).

I RoomNr lagrar jag hotellrummens nummer.
Jag har främmande nyckel till Room.

Jag försöker nu köra en SQl sträng bland dessa tabeller som skall ta fram alla lediga rum (rumskategori kopplat till rumsnummer) mellan två datum men lyckas inte hur jag än försöker. Det är säkert någonting lätt som jag förbiser och jag vore jättetacksam om Du ser vad det är.

SQl strängen jag kör ser just nu ut så här...

SELECT Room.RoomCategory, RoomNr.RoomNr
FROM Room, RoomNr, Booking
WHERE RoomNr.IDRoom= Room.IDRoom
AND Booking.IDRoomNr<>RoomNr.IDRoomNr
AND Booking.CheckIn Between '2004-01-01' AND '2004-01-31'

I detta läget förväntar jag mig att koden skall ta bort två rum ur urvalet eftersom de enligt de två "fråge" datumen redan är bokade. Nu tas bara ett av rummen bort och det rummet har exakt dessa datum som incheckning och utcheckning.

Om jag nu har 24 rum och 12 rumskategorier vill jag alltså att två rum inte skall visas i listan för lediga rum de efterfrågade datumen.

Hur gör jag?????


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-17 07:23:38 - Andreas Hillqvist

SELECT Room.RoomCategory, RoomNr.RoomNr
FROM Room INNER JOIN RoomNr ON Room.IDRoom = RoomNr.IDRoom
WHERE NOT RoomNr.IDRoom IN (SELECT DISTINCT Booking.IDRoomNr
FROM Booking
WHERE Booking.CheckIn Between '2004-01-01' AND '2004-01-31')


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-17 10:09:17 - Peter Björklund

Nej den funkade inte heller. Inget rum togs bort ur urvalet.


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-17 11:53:14 - Andreas Hillqvist

KAn du beskriva din datastruktur? Gärna sdkicka med exempeldata.


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-17 12:09:37 - Emma Magnusson

Hmm... skulle precis som Andreas vilja se din tabellstruktur. Gör en skärmdump och
ladda upp den/maila den eller beskriv den här.

Får vi bara all information kommer du få ditt svar blixtsnabbt.

/Emma


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-18 11:05:58 - Peter Björklund

Tabellen Booking innehåller data om själva bokningen.

IDBooking
RoomCategory
NrOfAdults
NrOfChildren
INPCategory
OPCategory
ExtraBed
BabyCrib
SortOfPayment
CheckIn
CheckOut
Remarks
Sum
RoomNr
IDGuest

I denna tabell sparas data för respektive bokning. Tabellen tillåts och kommer att innehålla redudant data eftersom data skall sparas för lång tid framåt pga statistikkörning mm. Tabellen skall aldrig påverkas av andra administrativa ändringar som kan komma att utföras på andra håll i databasen. Tabellen är kopplad till tabellen Guest som har namn och adressuppgifter på själva gästen.

Tabellen Room innehåller data om rummen eller rumskategorierna rättare sagt.
En rumskategori kan vara Bröllopsvit en annan Stort etagerum tex.

IDRoom
RoomCategory

Tabellen RoomNr innehåller rumsnummer. Tabellen är kopplad till tabellen Room.

IDRoomNr
RoomNr
IDRoom

Antag nu att en gäst ringer hotellet och frågar efter lediga rum mellan datumen 2003-12-10 och 2004-01-01. Endast de rum som inte har någon bokning på sig under denna datumperiod skall nu visas som lediga rum.

Hoppas ni förstår hur jag menar och vill ha det. Kankse är inte databasen rätt modulerad för ändamålet. Just nu känns det svårt att få till det. Jag har skrivit SQL om och om igen men får inte till det.



Svara

Sv: SELECT problem... någon?

Postades av 2003-06-18 11:52:33 - Andreas Hillqvist

Så här bör frågan se ut:
<code>
PARAMETERS [From] DateTime, [To] DateTime;
SELECT RoomNr.RoomNr, Room.RoomCategory,
FROM RoomNr INNER JOIN Room ON RoomNr.IDRoom = Room.IDRoom
WHERE NOT RoomNr.IDRoom IN (SELECT DISTINCT Booking.IDRoomNr
FROM Booking
WHERE NOT (Booking.CheckIn >= [To] Or Booking.CheckOut =< [From]))
</code>
Eller om du föredrar konstanter:
<code>
SELECT RoomNr.RoomNr, Room.RoomCategory,
FROM RoomNr INNER JOIN Room ON RoomNr.IDRoom = Room.IDRoom
WHERE NOT RoomNr.IDRoom IN (SELECT DISTINCT Booking.IDRoomNr
FROM Booking
WHERE NOT (Booking.CheckIn > #2004-01-31# Or Booking.CheckOut < #2004-01-01#))
</code>


Svara

Sv: SELECT problem... någon?

Postades av 2003-06-18 14:37:03 - Peter Björklund

Andreas... ta detta symboliskt nu... PUSS på dig.
Det fungerar!!! :-)

Tack.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
397
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies