Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Oracle]podwójny warunek w inie
Kishin
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


Witam

Mam taki problem,
próbuje wyciągnąć dane z bazy, mam sobie tabele w excelu z wartością konto oraz data.
Porzebuje ułozyc zapytanie które wyciągnie z bazy wszystkie rekordy dla danego konta z datą większa niż ta którą mam w tabeli dla danego konta.

czyli chodzi o coś takiego
  1. SELECT * FROM TABLE WHERE (konto,DATA) IN ((konto1,data1),(konto2,data2),(...))

z tą różnicą ze potrzebuje dane nie równe data1,data2 ale wszystkie wieksze od niej.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mar1aczi
post
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


W jednym zapytaniu konstrukcja nie będzie tak prosta. Pewnie trzeba by uzyć if/case lub coś podobnego.
Wyciągnij dane pojedynczo dla każdego wiersza excela: where konto = 'konto' and data > _data_


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Kishin
post
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


Cytat(mar1aczi @ 2.03.2015, 14:29:37 ) *
Wyciągnij dane pojedynczo dla każdego wiersza excela: where konto = 'konto' and data > _data_

Na tą chwile robie to właśnie w ten sposób, natomiast delikatnie rzecz ujmując jest to troszkę nieoptymalne rozwiązanie wink.gif

Miałem nadzieje ze da rade to rozwiązać nieco bardziej elegancko.
Go to the top of the page
+Quote Post
mar1aczi
post
Post #4





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Hmm, możesz również i tak
  1. WHERE (konto = _konto_ AND DATA < _data_) OR (konto = _konto1_ AND DATA < _data1_) itd.

Też nie wiem na ile jest to zapytanie optymalne.

Ten post edytował mar1aczi 2.03.2015, 15:21:49


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #5





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

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


Jeśli dla każdego konta masz w tabeli datę, to domyślam się, że również w tej tabeli masz konto. Wniosek: użyj JOINA.
Go to the top of the page
+Quote Post
Kishin
post
Post #6





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


Cytat(mar1aczi @ 2.03.2015, 15:21:28 ) *
Hmm, możesz również i tak
  1. WHERE (konto = _konto_ AND DATA < _data_) OR (konto = _konto1_ AND DATA < _data1_) itd.

Też nie wiem na ile jest to zapytanie optymalne.


tak chyba będe to musiał robić, trzeba bedzie sobie zrobić w excelu jakąś funkcje co mi to będzie zwracac w takiej formie


Cytat(mmmmmmm @ 2.03.2015, 15:28:07 ) *
Jeśli dla każdego konta masz w tabeli datę, to domyślam się, że również w tej tabeli masz konto. Wniosek: użyj JOINA.

nie mam tabeli z tymi danymi, mam to w formie excela, musiałbym to ewentualnie wrzucać sobie do jakiejś tabelki tymczasowej

Ogólnie dzięki za pomoc , tak czy tak nie obejdzie sie bez odrobiny "ręcznej" roboty smile.gif

Pozdrawiam
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 - 22:30