Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z select..
Forum PHP.pl > Forum > Bazy danych > Oracle
artvip
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ć 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ę

thek
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.
skowron-line
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
artvip
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?
thek
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 smile.gif Domyslam się, że to będzie jakaś wariacja z JOINem
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-2024 Invision Power Services, Inc.