Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z select..
artvip
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

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


Witajcie,


Zapytanie:
  1. SELECT
  2. A.VALUE,
  3. A.START,
  4. A.STOP,
  5. A.START-A.STOP,
  6. A.ID
  7. FROM
  8. RC A,
  9. STAT B
  10. WHERE
  11. B.WARTOSC = A.VALUE AND
  12. TO_CHAR(A.START,'YYYYMMDD') = '20110802'


Zpytanie zwraca wartości:
VALUE START STOP CZAS ID
1 09:08:42 09:21:08 00:12:25 8142552
9 11:10:59 11:27:59 00:16:59 8143397
9 11:10:59 11:16:14 00:05:15 8143319
1 11:16:14 11:27:59 00:11:44 8143397
9 12:03:57 12:08:37 00:04:39 8143668
3 12:31:14 12:36:20 00:05:06 8143853

Mój problem dotyczy trzech poniższych rekordów:
VALUE START STOP CZAS ID
9 11:10:59 11:27:59 00:16:59 8143397
9 11:10:59 11:16:14 00:05:15 8143319
1 11:16:14 11:27:59 00:11:44 8143397

Ten rekord:
VALUE START STOP CZAS ID
9 11:10:59 11:27:59 00:16:59 8143397
jest sumą tych rekordów:
VALUE START STOP CZAS ID
9 11:10:59 11:16:14 00:05:15 8143319
1 11:16:14 11:27:59 00:11:44 8143397

i chciałbym go pominąć -> wyrzucać (pomijać) w wyniku.

Niestety nie wiem jak się za to zabrać (IMG:style_emoticons/default/sad.gif)

Czy jakieś podzapytanie.. czy rozwiązać to case'em.. Brak już mi pomysłu i wszystkie próby niestety kończą się niepowodzeniem:(

Ktoś może podpowie czy można to jakoś na zapytaniu ruszyć.. ewentualnie czy w taki sposób jestem w stanie to zrobić ?

Z góry dziękuję

Go to the top of the page
+Quote Post
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Może zacznij od zrozumienia różnicy między różnymi typami złączeń JOIN. Myślę, że da Ci to więcej niż pakowanie do FROM radośnie kilku tabel by potem to w WHERE ograniczać. Produkuje to masę niepotrzebnych wierszy i obciąża bazę mocniej.
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html <- tu szukaj rozwiązania.

EDIT:

Sorki dopiero teraz zobaczyłem że problem dotyczy ORACLA

Ten post edytował skowron-line 4.08.2011, 13:50:40
Go to the top of the page
+Quote Post
artvip
post
Post #4





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

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


skowron-line:
dzięki ale nie widzę tam rozwiązania mojego problemu.. nie mam problemu z definicjami czasu a już na pewno nie szukam pomocy z MySQL tylko oracle.. ale dzięki za chęci

thek:
Nie wiem czy tędy trop.. próbowałem na różne sposoby z LEFT OUTER JOIN

Dochodzę do wyniku gdzie mam 2 ID i STOP
ID STOP
8143397 11:27:59
8143319 11:16:14

natomiast kiedy chcę do tego podpiąć czas start to nie ma bata.. znowu widzę 3 rekordy..

Jakaś podpowiedz?
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To może daj nam obie tabelę z kilkoma wierszami i powiedz co chcesz uzyskać jako ostateczny wynik. Analiza danych wejściowych i wyjściowych powinna wystarczyć do złapania o co Ci chodzi (IMG:style_emoticons/default/smile.gif) Domyslam się, że to będzie jakaś wariacja z JOINem
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 9.10.2025 - 06:17