Jak zrobic query z query? (TQuery)

0

Witam.

Mam problem. Tworze sobie kwerende (q1) uzywajac komponentu TQuery.
Wyszukuje dane i jest ok. Tworze kolejna (q2) kwerende i chcialbym wykorzystac dane z wczesniej utworzonej q1.

Nie ma tego nigdzie w zadnym tutorialu, w helpie, na forum!!

HELP!!!!

0

O jakie dane chodzi? To mają być pola tabeli wynikowej, czy może zapytanie SQL z tamtego Query'ego?

0

Postaram sie wyjasnic dokladniej.
Chce wykor:ystac dane wynikowe z kwerendy q1, w celu przeprowadzenia na nich kolejnego zapytania kwerenda q2.

0

Do pól tabeli wynikowej można się odwoływać tak samo jak do wszystkich innych, tzn ustawiasz sobie zbiór danych na odpowiednim rekordzie i później konstrukcja w stylu TQuery.FieldByName('NazwaPola').AsInteger (np)

0

Nie o to mi chodzilo. Jeszcze raz :)

Chce zrobic "kwerende z kwerendy". W Accesie robie to tak:

Przykladowa kwerenda Q1:
SELECT ID, Imie, Nazwisko
FROM Uzytkownik

Przykladowa kwerenda Q2:
SELECT Imie, Nazwisko
FROM Q1 <- o to chodzi

Niestety nie wiem jak to zrobic w Delphi.

0

Hmm, ja chyba też nie :)

0

Przykladowa kwerenda Q1:
SELECT ID, Imie, Nazwisko
FROM Uzytkownik

Przykladowa kwerenda Q2:
SELECT Imie, Nazwisko
FROM Q1 <- o to chodzi

Przecież o takie coś można zapytać tak:

SELECT imie, nazwisko
FROM (SELECT id, imie, nazwisko
FROM Uzytkownik)

W zasadzie zawsze da się zapytać takim zapytaniem złożonym, więc niepotrzebne jest "query z query" - jedne gdzie możesz mieć problemy, to przy kilkukrotnym złączeniu - ale od czego są aliasy.

//do postu poniżej:
Konstrukcja SELECT ... FROM ... SELECT (zagnieżdżanie) jest jak najbardziej poprawną w każdej "wersji" języka SQL - więc fakt, iż wyskakuje Ci taki błąd wynika z tego, że coś spaprałeś... Posprawdzaj czy wszystkie otwarte nawiasy są zamknięte, czy każdy SELECT ma swój FROM i czy nie pomieszałeś gdzieś przy zagnieżdżaniu

0

No wlasnie ze nie mozna!
Wydawaloby sie, ze to jest oczywiste, ale niestety w Delphi, uzywajac komponentu TQuery nie da sie utworzyc podkwerendy w klauzuli FROM (wyskakuje mi blad - "Invalid use of keyword (SELECT)". Nie wiem dlaczego? Nie umiem rowniez sie odwolac do juz utworzonej kwerendy tak jak wyzej. Straszne ograniczenie - praktycznie nie da sie utworzyc bardziej zlozonego zapytania, a w takim razie po co mi baza danych?!. Osobiscie wydaje mi sie, ze musi sie to dac jakos rozwiazac, ale po godzinach spedzonych na przegladaniu faq, forums, helpa i innych mam juz dosc :(.

Help!

0

proponuję 1) trochę pomyśleć 2) douczyć się SQL. po pierwsze wyniki pierwszego zapytania możesz zachować w zmiennej i na podstawie jej zawartości skonstruować drugie zapytanie. po drugie - po wuj ci to? użyj where i już. jeśli i to nie wystarcza (w to nie wierzę), to użyj składni create view.
tylko ja naprawdę nie rozumiem po co to.

0

To jak jestes taki madry to mi napisz laskawie jak z takiej zmiennej wykorzystac dane, zeby uzyc je w kwerendzie. Chyba na oczy nie widziales Delphi oraz TQuery, wiec po co sie gosciu wypowiadasz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0