Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] - prośba o pomoc w skonstruowaniu zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
murek5
Witam wszystkich
Bardzo byłbym wdzięczny za pomoc w ułożeniu zapytania SQL.
Mianowicie, mam tablicę w bazie danych, w której każdy rekord ma 2 kolumny: 'StartTime', 'EndTime', które oznaczają początek i koniec rezerwacji w systemie obiektu turystycznego. Chciałbym (o ile to możliwe) stworzyć zapytanie do bazy, aby ta wyświetliła mi wszystkie dni z przedziału <StartTime,EndTime> wraz z ilością wystąpień danego dnia. Krótko mówiąc, żeby było wiadomo ile rezerwacji jest naraz danego dnia.

Oczekiwany wynik zapytania:

---------------------------------
Data: | Ile_rezerwacji
---------------------------------
01-12-2012 | 4
02-12-2012 | 3
05-12-2012 | 1
(...) | (...)
---------------------------------
mmmmmmm
W MYSQL w prosty sposób się nie da. W postgreSQL się da.
Np.
SELECT daty, Count(*) FROM generate_series(data_poczatkowa, data_koncowa, 1) daty, tabela WHERE daty BETWEEN tabela.StartTime AND EndTime GROUP BY 1
murek5
Całą bazę mam w MySQL, także pozostałbym przy niej.
Więc może jakoś w połączeniu z PHPem da się to uzyskać?
tvister
Nie ma jak dobrze zapytać gogla:)

http://stackoverflow.com/questions/6870499...valent-in-mysql
murek5
Troche nie to o co mi chodziło sad.gif
wiiir
Troche ciezko napisac zapytanie jak nie wiem jak skladujesz dane.

Ale wystarczy zwykly count albo suma zalezy jak masz dane between albo >= i <= oraz grupowanie.


zaptanie zwaraca dni w ktorych jest jakas rezerwacja
  1. SELECT DATA, count(DATA)
  2. FROM rezerwacje
  3. WHERE DATA >= pd_data
  4. AND data<= pd_data
  5. GROUP BY DATA
  6. HAVING count(DATA) > 1
  7. ORDER BY 1 ASC



mmmmmmm
1. zrob sobie tabenke, gdzie bedziesz mial liczby od 1 do (w pizdu). Nazwijmy ja liczby a pole lp.
2. SELECT * FROM liczby, tabelka WHERE liczby.lp<=DATEDIFF(EndTime, StartTime)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.