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 proizvod. Da biste kreirali upit koji prikazuje ovaj interval, morate da uporedite svaki datum porudžbine sa drugim datumima porudžbine za taj proizvod. Upoređivanje ovih datuma porudžbine takođe zahteva upit. Ovaj upit možete da ugnezdite unutar glavnog upita pomoću podupit.

Podupit možete da napišete u izraz ili u izrazu Structured Query Language (SQL) u programu prikaz „SQL“.

U ovom članku

Korišćenje rezultata upita kao polja u drugom upitu

Podupit možete da koristite kao pseudonim polja. Podupit koristite kao pseudonim polja kada želite da koristite rezultate podupita kao polje u glavnom upitu.

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

Pseudonim polja podupita možete da koristite da biste prikazali vrednosti koje zavise od drugih vrednosti u trenutnom redu, š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 proizvod. Da biste odredili ovaj interval, morate da uporedite svaki datum porudžbine sa drugim datumima porudžbine za taj proizvod. Pomoću predloška Northwind baze podataka možete da kreirate upit koji prikazuje ove informacije.

  1. Na kartici Datoteka kliknite na dugme Novo.

  2. U okviru Dostupni predlošciizaberite stavku Probni predlošci.

  3. Izaberite stavku Northwind, a zatim kliknite na dugme 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 polje " Datum porudžbine" da biste ih dodali u koordinatnu mrežu za dizajn upita.

  8. U redu Sortiranjekolone ID proizvoda koordinatne mreže izaberite stavku Rastući redosled.

  9. U redu Sortiranje kolone 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 Polje, a zatim u priručnom meniju izaberite stavku Zumiranje.

  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, podupit bira najnoviji datum porudžbine koji je manje skorašnji od datuma porudžbine koji je već povezan sa redom. Obratite paznje na to kako koristite as ključnu reč za kreiranje pseudonima tabele, tako da možete da uporedite vrednosti u podupitu sa vrednostima u trenutnom redu glavnog upita.

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

    Interval: [Order Date]-[Prior Date]

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

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

    1. Upit pokreće i prikazuje listu imena proizvoda, datume porudžbina, datume porudžbina i interval između datuma porudžbine. Rezultati se prvo sortiraju po ID-u proizvoda (rastućim redosledom), a zatim po datumu porudžbine (opadajućim redosledom).

    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 stvarne ID-ove proizvoda. Iako ovo menja vrednosti koje se pojavljuju, on ne menja redosled sortiranja.

  14. Zatvorite Bazu podataka preduzeća Northwind.

Vrh stranice

Korišćenje podupita kao kriterijuma za polje upita

Podupit možete da koristite kao kriterijum polja. Podupit koristite kao kriterijum polja kada želite da koristite rezultate podupita da biste ograničili vrednosti koje polje prikazuje.

Na primer, pretpostavimo da želite da pregledate listu porudžbina koje su obradio zaposleni koji nisu predstavnici prodaje. Da biste generisala ovu listu, morate da uporedite ID zaposlenog za svaku porudžbinu sa listom ID-ova zaposlenih 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 polje "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 dizajna.

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

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

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

    Ovo je podupit. Bira sve ID-ove zaposlenih gde zaposleni nema radno mesto predstavnika prodaje i obezbeđuje taj skup rezultata u glavnom upitu. Glavni upit zatim proverava da li se ID-ove zaposlenih iz tabele "Porudžbine" nalaze u skupu rezultata.

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

    Upit se pokreće, a rezultati upita prikazuju listu porudžbina koje su obrađili 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 iscrpna. U podupitu možete da koristite bilo koju važeću SQL ključnu reč, isključujući ključne reči definicije podataka.

  • SVE    Koristite ALL u odredbi WHERE da biste preuzeli redove koji zadovoljavaju uslov u poređenju sa svakim redom koji vrati podupit.

    Na primer, pretpostavimo da analizirate podatke o studentima na fakultetu. Studenti moraju da održavaju minimalnu GPA, koja se razlikuje od glavnih do glavnih. Glavni predmeti i njihovi minimalni GPA-i skladište se u tabeli pod imenom "Glavni predmeti", a relevantne informacije o studentima skladište se u tabeli koja se zove Student_Records.

    Da biste videli listu glavnih predmeta (i minimalne GPA) za koju svaki student sa tim glavnim predmetom 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]);
  • BILO KOJA    Koristite ANY u odredbi WHERE da biste preuzeli redove koji zadovoljavaju uslov u poređenju sa najmanje jednim od redova koje je vratio podupit.

    Na primer, pretpostavimo da analizirate podatke o studentima na fakultetu. Studenti moraju da održavaju minimalnu GPA, koja se razlikuje od glavnih do glavnih. Glavni predmeti i njihovi minimalni GPA-i skladište se u tabeli pod imenom "Glavni predmeti", a relevantne informacije o studentima skladište se u tabeli koja se zove Student_Records.

    Da biste videli listu glavnih predmeta (i minimalne GPA-ove) za koju bilo koji student sa tim predmetom ne ispunjava minimalnu GPA vrednost, 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: Ključnu reč SOME možete da koristite i u istu svrhu; neka ključna reč je sinonim za ANY.

  • EXISTS     Koristite EXISTS u odredbi WHERE da biste naznačili da podupit treba da vrati najmanje jedan red. Možete i da naznačite da podupit ne bi trebalo da daje nijedan red.

    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]);

    Koristeći OPCIJU NOT EXISTS, upit vraća listu proizvoda koji nisu pronađeni 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 IN u odredbi WHERE da biste potvrdili da je vrednost u trenutnom redu glavnog upita deo skupa koji daje podupit. Možete da postavite ispred IN pomoću funkcije NOT da biste potvrdili da vrednost u trenutnom redu glavnog upita nije deo skupa koji podupit daje.

    Na primer, sledeći upit daje listu porudžbina (sa datumima porudžbina) koje su obrađili 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');

    Pomoću funkcije NOT IN možete da napišete isti upit na ovaj 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?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×