Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] - prośba o pomoc w skonstruowaniu zapytania
murek5
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


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
(...) | (...)
---------------------------------
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
murek5
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
tvister
post
Post #4





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

Ostrzeżenie: (0%)
-----


Nie ma jak dobrze zapytać gogla:)

http://stackoverflow.com/questions/6870499...valent-in-mysql


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
murek5
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


Troche nie to o co mi chodziło sad.gif
Go to the top of the page
+Quote Post
wiiir
post
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


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



Go to the top of the page
+Quote Post
murek5
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


Tabela wygląda tak:
http://img33.imageshack.us/img33/1880/przechwytywaniexr.png dane
http://img138.imageshack.us/img138/4688/pr...wytywaniedp.png struktura
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #8





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:08