Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.

Ponekad ćete možda želeti da koristite rezultate upita kao polje u drugom upitu ili kao kriterijum za polje upita. Na primer, pretpostavimo da želite da vidite interval između porudžbina za svaki od vaših proizvoda. Da biste kreirali upit koji prikazuje ovaj interval, morate da uporedite svaki datum porudžbine sa drugim datumima porudžbine za taj proizvod. Poređenje ovih datuma porudžbine zahteva i upit. Ovaj upit možete da gnezdite unutar glavnog upita pomoću podupit.

Možete da napišete potupit u izraz ili u programu Strukturirani Query Language (SQL) u prikaz „SQL“.

U ovom članku

Korišćenje rezultata upita kao polja u drugom upitu

Možete da koristite Podupit kao pseudonim polja. Koristite Podupit kao pseudonim polja kada želite da koristite rezultate potupita kao polje u glavnom upitu.

Napomena: Podupit koji koristite kao pseudonim polja ne može da vrati više polja.

Možete da koristite pseudonim polja podupita za prikaz vrednosti koje zavise od drugih vrednosti u trenutnom nizu, što nije moguće bez korišćenja podupita.

Na primer, dozvolite nam da se vratimo na primer gde želite da vidite interval između porudžbina za svaki od vaših proizvoda. Da biste odredili ovaj interval, morate da uporedite svaki datum porudžbine sa drugim datumima porudžbine za taj proizvod. Možete da kreirate upit koji prikazuje ove informacije pomoću predloška baze podataka Northwind.

  1. Na kartici Datoteka kliknite na dugme Novo.

  2. U okviru dostupni predlošciizaberite stavku uzorci predložaka.

  3. Kliknite na dugme Northwind, a zatim izaberite stavku Kreiraj.

  4. Sledite pravce na stranici Northwind Traders (na kartici objekta Polazni ekran) da biste otvorili bazu podataka, a zatim zatvorite prozor „Dijalog za prijavljivanje“.

  5. Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.

  6. Izaberite karticu upiti , a zatim kliknite dvaput na stavku porudžbine proizvoda.

  7. Kliknite dvaput na polje ID proizvoda i Datum porudžbine da biste ih dodali u koordinatnu mrežu za dizajn upita.

  8. U red sortiranja u koloni ID proizvoda koordinatne mreže izaberite stavku Rastući.

  9. U redu sortiranja u koloni Datum porudžbine koordinatne mreže izaberite stavku Opadajući redosled.

  10. U trećoj koloni koordinatne mreže kliknite desnim tasterom miša na red polja , a zatim u priručnom meniju izaberite stavku Zumiraj .

  11. U dijalogu zumiranje otkucajte ili nalepite sledeći izraz:

    Prior Date: (SELECT MAX([Order Date]) 
    FROM [Product Orders] AS [Old Orders]
    WHERE [Old Orders].[Order Date] < [Product Orders].[Order Date]
    AND [Old Orders].[Product ID] = [Product Orders].[Product ID])

    Ovaj izraz je Podupit. Za svaki red, potquery bira datum poslednjeg porudžbine koji je manje noviji od datuma porudžbine koji je već povezan sa redom. Imajte u vidu kako koristite ključnu reč za kreiranje pseudonima tabele, kako biste mogli da uporedite vrednosti u potupitu sa vrednostima u trenutnom nizu glavnog upita.

  12. U četvrtoj koloni koordinatne mreže, u red polja otkucajte sledeći izraz:

    Interval: [Order Date]-[Prior Date]

    Ovaj izraz izračunava interval između svakog datuma porudžbine i datuma prethodnog porudžbine za taj proizvod pomoću vrednosti za raniji datum koji smo definisali pomoću podupita.

  13. Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.

    1. Upit se pokreće i prikazuje listu imena proizvoda, datuma porudžbine, prethodnih datuma porudžbine i intervala između datuma porudžbine. Rezultati se sortiraju po ID-u proizvoda (rastući redosled), a zatim po datumu porudžbine (Opadajući redosled).

    2. Napomena: Pošto je ID proizvoda polje za pronalaženje, Access podrazumevano prikazuje vrednosti za pronalaženje (u ovom slučaju ime proizvoda), a ne na stvarne ID-ove proizvoda. Iako to menja vrednosti koje se pojavljuju, redosled sortiranja se ne menja.

  14. Zatvorite bazu podataka Northwind.

Vrh stranice

Korišćenje podupita kao kriterijuma za polje upita

Možete da koristite Podupit kao kriterijum polja. Korišćenje podupita kao kriterijuma polja kada želite da koristite rezultate potupita za ograničavanje vrednosti koje se prikazuju.

Na primer, pretpostavimo da želite da pregledate listu porudžbina koje su obrade zaposleni koji nisu predstavnici prodaje. Da biste generisali ovu listu, morate da uporedite ID zaposlenog za svaku porudžbinu sa listom ID-ova zaposlenog za zaposlene koji nisu predstavnici prodaje. Da biste kreirali ovu listu i da biste je koristili kao kriterijum polja, koristite Podupit, kao što je prikazano u sledećoj proceduri:

  1. Otvorite Northwind. accdb i omogućite njegov sadržaj.

  2. Zatvorite obrazac za prijavljivanje.

  3. Na kartici Pravljenje, u grupi Ostalo kliknite na dugme Dizajn upita.

  4. Na kartici tabele kliknite dvaput na stavku porudžbine i zaposleni.

  5. U tabeli porudžbine kliknite dvaput na polje ID zaposlenog , polje ID porudžbine i Datum porudžbine da biste ih dodali u koordinatnu mrežu za dizajn upita. U tabeli zaposleni kliknite dvaput na polje radno mesto da biste ga dodali u koordinatnu mrežu za dizajn.

  6. Kliknite desnim tasterom miša na red kriterijuma kolone ID zaposlenog, a zatim u priručnom meniju izaberite stavku Zumiraj .

  7. U polju Zum otkucajte ili nalepite sledeći izraz:

    IN (SELECT [ID] FROM [Employees] 
    WHERE [Job Title]<>'Sales Representative')

    Ovo je potquery. Bira sve ID-ove zaposlenog gde zaposleni nema radno mesto predstavnika prodaje i snabdeva ga glavnim upitom. Glavni upit zatim proverava da li su ID-ovi zaposlenog iz tabele "porudžbine" u skupu podataka.

  8. Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.

    Upit se pokreće i rezultati upita prikazuju listu porudžbina koje su obrade zaposleni koji nisu predstavnici prodaje.

Vrh stranice

Uobičajene SQL ključne reči koje možete da koristite sa podupitom

Postoji nekoliko SQL ključnih reči koje možete da koristite sa podupitom:

Napomena: Ova lista nije sveobuhvatna. Možete da koristite važeće SQL ključnu reč u podupitu, uključujući ključne reči o definiciji podataka.

  • SVE    Koristite sve u odredbi WHERE da biste preuzeli redove koji zadovoljavaju uslov kada se uporede sa svakim redovima koje je vratio Podupit.

    Na primer, pretpostavimo da analizirate studente na koledћu. Učenici moraju da održe minimalnu ocenu, koja se razlikuje od glavnih do majora. Učenice i njihovi minimalni GPAs skladište se u tabeli pod imenom majora, a relevantne informacije o studentima skladište se u tabeli koja se zove Student_Records.

    Da biste videli listu glavnih naloga (i minimum GPAs) za koje svaki student sa tim velikim premašuje minimalnu GPA, možete da koristite sledeći upit:

    SELECT [Major], [Min_GPA] 
    FROM [Majors]
    WHERE [Min_GPA] < ALL
    (SELECT [GPA] FROM [Student_Records]
    WHERE [Student_Records].[Major]=[Majors].[Major]);
  • SVE    Koristite bilo koje u odredbi WHERE da biste preuzeli redove koji zadovoljavaju uslov kada se uporede sa najmanje jednim od redova koje je vratio podupita.

    Na primer, pretpostavimo da analizirate studente na koledћu. Učenici moraju da održe minimalnu ocenu, koja se razlikuje od glavnih do majora. Učenice i njihovi minimalni GPAs skladište se u tabeli pod imenom majora, a relevantne informacije o studentima skladište se u tabeli koja se zove Student_Records.

    Da biste videli listu glavnih naloga (i minimum GPAs) za koje svaki student sa velikim brojem ne ispunjava minimum GPA, možete da koristite sledeći upit:

    SELECT [Major], [Min_GPA] 
    FROM [Majors]
    WHERE [Min_GPA] > ANY
    (SELECT [GPA] FROM [Student_Records]
    WHERE [Student_Records].[Major]=[Majors].[Major]);

    Napomena: Možete da koristite i određenu ključnu reč iz iste svrhe; Neka ključna reč je sinonim za bilo koju.

  • EXISTS     Korišćenje postoji u odredbi WHERE da biste ukazali na to da bi Podupit trebalo da vrati najmanje jedan pravi. Možete i da se unapred suoиite sa njom, da biste ukazali na to da potupit ne bi trebalo da vrati redove.

    Na primer, sledeći upit vraća listu proizvoda koji su pronađeni u najmanje jednom postojećem redosledu:

    SELECT *
    FROM [Products]
    WHERE EXISTS
    (SELECT * FROM [Order Details]
    WHERE [Order Details].[Product ID]=[Products].[ID]);

    Korišćenje ne postoji, upit vraća listu proizvoda koji se ne nalaze u najmanje jednom postojećem redosledu:

    SELECT *
    FROM [Products]
    WHERE NOT EXISTS
    (SELECT * FROM [Order Details]
    WHERE [Order Details].[Product ID]=[Products].[ID]);
  • IN    Koristite u odredbi WHERE da biste proverili da li je vrednost u trenutnom nizu glavnog upita deo skupa koji daje upit. Možete i da se unapred suoиite sa njima, da biste verifikovali da vrednost u trenutnom nizu glavnog upita nije deo skupa koji daje upit.

    Na primer, sledeći upit vraća listu porudžbina (sa datumima porudžbine) koje su procesuirani zaposleni koji nisu predstavnici prodaje:

    SELECT [Order ID], [Order Date]
    FROM [Orders]
    WHERE [Employee ID] IN
    (SELECT [ID] FROM [Employees]
    WHERE [Job Title]<>'Sales Representative');

    Ako koristite NOT, možete da napišete isti upit na sledeći način:

    SELECT [Order ID], [Order Date]
    FROM [Orders]
    WHERE [Employee ID] NOT IN
    (SELECT [ID] FROM [Employees]
    WHERE [Job Title]='Sales Representative');

Vrh stranice

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×