Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie sql
dziubekpr
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2007

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


Mam taki problem:
w tabeli Przyloty która składa się z jedej kolumny DATA przechowywane są daty przylotów samolotu. zakł. że jeden przylot kończy się w tym samym dniu gdy zaczyna się następny oraz że DATA jest kluczem gł tabeli
napisz zapytanie SQL, które zwraca daty rozpoczęcia i zakończenia przylotów oraz okres trwania lotu

Bardzo proszę o pomoc lub chociaż wskazówki:)

Ten post edytował dziubekpr 5.03.2007, 17:15:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


To wskazowki

  1. SELECT odlot, przylot, (odlot - przylot) AS czas_lotu FROM ...........


OT odlot tongue.gif


--------------------
Go to the top of the page
+Quote Post
dziubekpr
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2007

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


Ok:)dzięki, ale największy problem to jest właśnie z wyróżnieniem i uszeregowaniem dat przylotu i odlotu bo one są w jedynej kolumnie tej tabeli np.
2007-07-11 data przylotu
2007-07-18 data odlotu i od razu jest datą kolejnego przylotu
2007-07-22 -exclamation.gif-
i co?
Prosze pomóżcie:)
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


A jak odrozniasz ktore to bo jesli to jest jakas flaga to zrob zlaczenie 2x tych samych tabel.


--------------------
Go to the top of the page
+Quote Post
dziubekpr
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2007

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


Flaga???Sorki ale jestem początkująca:) a złączenie 2x tej samej tabeli to niby jak?inner join...?
dzięki że mi pomagasz:)
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Ok to moze inaczej, wrzuc strukture bo jakos nie zrozumialem jak wyglada Twoja tabela. Zrobilbym to najprosciej

id | start | stop

i teraz to zapytani co na poczatku podawalem


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





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2007

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


No właśnie nie mam konkretnej podanej tabeli w zadaniu:( tylko wiadomo że ta tabela ma jedną kolumnę o nazwie DATA(i jest jej kluczem głównym) kolumna przechowuje daty przylotów, przy założeniu że jeden przylot kończy się w dniu w którym zaczyna się drugi (odlot)
i tak sobie dla przykładu powpisywałam kolejne daty:) jak wyżej
ta jak to teraz proponujesz zrobi?
dzięki

Proszę napisz cośsad.gif

jest ktoś kto mógłby mi pomóc?questionmark.gif?
Go to the top of the page
+Quote Post
heaven
post
Post #8





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


  1. SELECT t.DATA AS odlot, (SELECT MIN(t2.DATA) FROM test2 t2 WHERE t2.DATA > t.DATA) AS przylot, TIMEDIFF((SELECT MIN(t2.DATA) FROM test2 t2 WHERE t2.DATA > t.DATA) , t.DATA) AS czas_trwania_lotu FROM test2 t ORDER BY t.DATA


tu tabela nazywa sie test2 a ty sobie to pozmieniaj na swoja

a i jeszcze jedno bo teraz czas lotu pokaze ci w godzinach:minutach:sekundach
ale widze ze loty te nie wylatuja o konkretnej godzinie tylko w danym dniu wiec zamiast TIMEDIFF uzyj DATEDIFF poda ci ile dni lecial a nie ile godzin
pozdr.

sorki. dopiero teraz przecytalem o co to chodzi smile.gif i nie wzialem pod uwage ze w tabeli sa przyloty a nie odloty. wiec powinno byc tak.
  1. SELECT p.DATA AS przylot, (SELECT MAX(p2.DATA) FROM Przyloty p2 WHERE p2.DATA < p.DATA) AS odlot, TIMEDIFF(p.DATA,(SELECT MAX(p2.DATA) FROM Przyloty p2 WHERE p2.DATA < p.DATA)) AS czas_trwania_lotu FROM Przyloty p ORDER BY p.DATA


Ten post edytował heaven 6.03.2007, 13:39:46
Go to the top of the page
+Quote Post
dziubekpr
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2007

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


Dzięki Ci:))))))))
Ale mam jeszcze jedno zadanko....:)może akurat będziesz miał chwilkę:)
w tabeli dokumenty, która składa się z klucza głównego ID typu integer oraz pól:Nuimer_dok typu int oraz data_dok typu data. dokumenty zostały wpisane w losowej kolejności i system nadał im numery których kolejności nie są zgodne z datami dokumentów
1. za pomocą SQL'a przenumeruj dokumenty zgodnie z polem Data_dok
2. za pomocą SQL'a przenumeruj dokumenty zgodnie z polem Data_dok zachowując istniejące dziury w numeracji (np. jeżeli mamy (tylko) dwa dokumenty nr 1 z 10 kwietnia oraz nr 3 z 9 kwietnia to w wyniku mamy otrzymać numer 3 z 10 kwietnia oraz nr 1 z 9 kwietnia)

jak dla mnie zbyt skomplikowane:)dziękuję z góry za Waszą pomoc
acha-zapytania mają być jak najprostsze, typu select, update

Pozdrówka

Może ma ktoś pomysł jak rozwiązać powyższe zadanie:)))bardzo mi na nim zależy:(
proszę:)
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: 20.08.2025 - 18:59