MS Access Dotazy SQL



Podobné dokumenty
Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

Úvod do databázových systémů

MS Access Dotazy SQL

Informační systémy ve zdravotnictví. 10. cvičení

Úvod do databázových systémů 3. cvičení

Úvod do databázových systémů

KIV/ZIS cvičení 5. Tomáš Potužák

Úvod do databázových systémů

Databázové systémy I

Úvod do databázových systémů

Databázové systémy. Cvičení 6: SQL

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Informační systémy ve zdravotnictví. 8. cvičení

5. blok Souhrnné a skupinové dotazy

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databáze I. Přednáška 6


Jazyk S Q L základy, příkazy pro práci s daty

Vícetabulková databáze. Vztahy mezi tabulkami

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Databáze SQL SELECT. David Hoksza

1. Relační databázový model

ÚVOD DO DATABÁZÍ. Metodické listy pro předmět

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

10. Editor databází dotazy a relace

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

KIV/ZIS cvičení 6. Tomáš Potužák

KIV/ZIS - SELECT, opakování

6. blok část C Množinové operátory

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Databáze I. 2. přednáška. Helena Palovská

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Odborná terminologie knihovnictví a informační vědy očima uživatelů databáze TDKIV Předběžné výsledky projektu. Helena Kučerová VOŠIS Praha

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Jazyk SQL slajdy k přednášce NDBI001

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Úvod do SQL v systému SAS Martin Branda

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

DATA CUBE. Mgr. Jiří Helmich

Databázové systémy Cvičení 5

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

2 Dotazy Příklad 1 Access 2010

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databázové systémy a SQL

Databázové systémy a SQL

KIV/ZIS Základy informačních systémů

CRS komunikační rozhraní

Základní přehled SQL příkazů

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Formální sémantika SQL dotazování

Dobývání znalostí z databází. Databáze. datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek

Tabulka fotbalové ligy

Vkládání, aktualizace, mazání

Databázové systémy. Dotazovací jazyk SQL - II

Databázové a informační systémy

6. blok část B Vnořené dotazy

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databáze. datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek

6. SQL složitější dotazy, QBE

SQL - SELECT. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 7

Použití databází na Webu

- sloupcové integritní omezení

Evidence objednávek pečiva

Operátory ROLLUP a CUBE

Pekárenská výroba Texty univerzity 3. věku FPBT VŠCHT Praha

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Dotazování v relačním modelu a SQL

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačních technologií

DB1 cvičení 4 spojení tabulek a složitější dotazy

Sada 1 - PHP. 15. Výběr dat z databáze. Příkaz SELECT

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Kapitola 4: SQL. Základní struktura

Vzorová úloha 1: Prokažte znalosti aplikace Microsoft Access na zvolené ukázkové databázi.

Popis souboru pro generování reportů *.report

Otázka č. 1 (bodů za otázku: 4)

Materiál ke cvičením - SQL

U koly na procvic ení jazyka T-SQL

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Zpracování informací

Transkript:

MS Access Dotazy SQL Dotaz SELECT opakování ŘEŠENÍ Michal Nykl Materiály pro cvičení KIV/ZIS 2012 Červeně značené výsledky odpovídají souboru cv6_testovacidb-pekarna150412.accdb

Pro některé z otázek lze vytvořit více variant dotazů, které poskytují totožný výsledek.

Dotazy (a) A1) Vypište jména obchodních řetězců, kterým pekárna dodává zboží (pozn.: obchodní řetězec zastupuje prodejny stejného jména). (3 jména) SELECT DISTINCT Nazev FROM Prodejny ; nebo SELECT Nazev FROM Prodejny GROUP BY Nazev ;

Dotazy (a) A2.1) Vypište jména měst, do kterých prodejna dodává zboží. (4 města) SELECT DISTINCT Adresa FROM Prodejny ; nebo SELECT Adresa FROM Prodejny GROUP BY Adresa ;

Dotazy (a) A2.2) Vypište jména měst, ve kterých jsou prodejny Astra nebo Rondo. (3 města) SELECT DISTINCT Adresa FROM Prodejny WHERE Nazev="Astra" OR Nazev="Rondo" ;

Dotazy (a) A2.3) Vypište jména měst, ve kterých jsou prodejny Mana a Rondo. (2 města) SELECT DISTINCT Adresa FROM Prodejny WHERE Nazev="Mana" AND Adresa IN (SELECT DISTINCT Adresa FROM Prodejny WHERE Nazev="Rondo") ;

Dotazy (a) A2.4) Vypište jména měst, ve kterých je prodejna Rondo a není prodejna Astra. (Ostrava) SELECT DISTINCT Adresa FROM Prodejny WHERE Nazev="Rondo" AND Adresa NOT IN (SELECT DISTINCT Adresa FROM Prodejny WHERE Nazev="Astra") ;

Dotazy (a) A2.5) Vypište jména měst, ve kterých jsou alespoň dvě prodejny. (3 jména) SELECT Adresa, COUNT(KodProdejny) FROM Prodejny GROUP BY Adresa HAVING COUNT(KodProdejny) >= 2;

Dotazy (a) A2.6) Vypište předchozí příklad číslem. (3) SELECT COUNT(Adresa) FROM ( SELECT Adresa FROM Prodejny GROUP BY Adresa HAVING COUNT(KodProdejny) >= 2 ) ;

Dotazy (b) B1.1) Vypište jednotlivé druhy pečiva s cenou za 100ks a daný sloupec pojmenujte Cena za 100ks SELECT Druh, CenaZaKus*100 AS [Cena za 100ks] FROM Pecivo ;

Dotazy (b) B1.2) Rozšiřte dotaz o proměnnou s volbou počtu ks. SELECT Druh, CenaZaKus*[Kolik kusů?] AS [Cena] FROM Pecivo ;

Dotazy (b) B2) Vypište jaké typy koláčů a chleba pekárna nabízí. (6 druhů) SELECT Druh FROM Pecivo WHERE (Druh LIKE "Koláč*" OR Druh LIKE "Chléb*");

Dotazy (b) B3) Vypište pečiva, která stojí méně než kobliha. (hous. a roh.) SELECT Druh FROM Pecivo WHERE CenaZaKus < ( SELECT CenaZaKus FROM Pecivo WHERE Druh = "Kobliha") ;

Dotazy (b) B4.1) Jaká je průměrná cena jednoho kusu pečiva (7,45) SELECT AVG(CenaZaKus) FROM Pecivo ;

Dotazy (b) B4.2) Vypište pečiva, která jsou dražší než průměrná cena jednoho kusu pečiva (viz předchozí příklad). (5 druhů) SELECT Druh FROM Pecivo WHERE CenaZaKus > (SELECT AVG(CenaZaKus) FROM Pecivo );

Dotazy (b) B5.1) Jaká je nejnižší a nejvyšší cena pečiva. (0,8 a 15) SELECT MIN(CenaZaKus) AS MinCena, FROM Pecivo; MAX(CenaZaKus) AS MaxCena

Dotazy (b) B5.2) Vypište pečiva, která mají nejnižší nebo nejvyšší cenu. (rohlík a chléb celozrnný) SELECT Druh FROM Pecivo, (SELECT MIN(CenaZaKus) AS MinCena, MAX(CenaZaKus) AS MaxCena FROM Pecivo) WHERE CenaZaKus = MinCena OR CenaZaKus = MaxCena; nebo jinak: SELECT Druh FROM Pecivo WHERE CenaZaKus IN (SELECT MIN(CenaZaKus) FROM Pecivo) OR CenaZaKus IN (SELECT MAX(CenaZaKus) FROM Pecivo);

Dotazy (b) B5.3) Vypište, kolik pečiv má nejnižší nebo nejvyšší cenu (2) SELECT COUNT(Druh) FROM Pecivo, (SELECT MIN(CenaZaKus) AS MinCena, MAX(CenaZaKus) AS MaxCena FROM Pecivo) WHERE CenaZaKus = MinCena OR CenaZaKus = MaxCena;

Dotazy (c) C1.1) Vypište objednávky, včetně objednaného pečiva, firmy Astra z měsíce května. (30 záznamů) SELECT o.*, pe.druh FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pr.nazev="astra" AND (o.datum >= #5/1/2010# AND o.datum < #6/1/2010#);

Dotazy (c) C1.2) Kolik rohlíků objednaly prodejny Astra v měsíci květnu a kolik to celkem stálo? (307ks, 245,6Kč) SELECT SUM(r.PocetKusu), SUM(pe.CenaZaKus*r.PocetKusu) FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pr.nazev="astra" AND (o.datum >= #5/1/2010# AND o.datum < #6/1/2010#) AND pe.druh="rohlík";

Dotazy (c) C2) Kolik stála nejdražší objednávka? (1042,8 Kč) SELECT MAX(Cena) FROM (SELECT o.idobjednavky, SUM(pe.CenaZaKus*r.PocetKusu) AS Cena FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky GROUP BY o.idobjednavky);

Dotazy (c) C3) Vypište, kolik průměrně stojí jedna objednávka. (cca 428Kč) SELECT AVG(Cena) FROM (SELECT o.idobjednavky, SUM(pe.CenaZaKus*r.PocetKusu) AS Cena FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky GROUP BY o.idobjednavky);

Dotazy (c) C4) Vypište, kolik jednotlivé prodejny zaplatily za své objednávky ve 4. čtvrtině roku 2010. (1.Astra=4814Kč) SELECT pr.kodprodejny, pr.nazev, SUM(pe.CenaZaKus*r.PocetKusu) AS Cena FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND (o.datum >= #10/1/2010# AND o.datum < #1/1/2011#) GROUP BY pr.kodprodejny, pr.nazev;

Dotazy (c) C5) Vypište, kolikrát jednotlivé prodejny objednali vánočku. (1.Astra=5) SELECT pr.kodprodejny, pr.nazev, COUNT(pe.Druh) FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pe.druh="vánočka" GROUP BY pr.kodprodejny, pr.nazev;

Dotazy (c) C6) Vypište kolik stály všechny objednané koláče. (87440Kč) SELECT SUM(r.PocetKusu*pe.CenaZaKus) FROM RozpisObjednavky r, Pecivo pe WHERE (r.kodpeciva = pe.kodpeciva) AND pe.druh LIKE "Koláč*";

Dotazy (c) C7) Vypište, kolikrát byly společně objednány kobliha a rohlík. (62x) SELECT COUNT(o.IDObjednavky) FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky AND pe.druh = "Kobliha AND o.idobjednavky IN ( SELECT o.idobjednavky FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky AND pe.druh = "Rohlík" );

Dotazy (d) D1) Vypište jméno města, ve kterém objednávají nejvíce vánoček. (Plzeň=380) SELECT pr.adresa AS [Mesto], SUM(r.PocetKusu) AS [Pocet] FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pe.druh="vánočka" GROUP BY pr.adresa HAVING SUM(r.PocetKusu) = (SELECT MAX(Pocet) FROM (SELECT pr.adresa AS [Mesto], SUM(r.PocetKusu) AS [Pocet] ); FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pe.druh="vánočka" GROUP BY pr.adresa ) 3) Znovu 1) + HAVING. 2) Kolik bylo nejvíce. 1) Ve kterém městě kolik vánoček.

Dotazy (d) D2) Vypište, jaká pečiva byla nadprůměrné žádána v období od 20.12.2010 do 31.12.2010. (3 pečiva) SELECT pe.druh, SUM(r.PocetKusu) AS [Ks] FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky AND o.datum >= #12/20/2010# AND o.datum <= #12/31/2010# GROUP BY pe.druh HAVING SUM(r.PocetKusu) > (SELECT AVG(Ks) FROM (SELECT pe.druh, SUM(r.PocetKusu) AS [Ks] ); 3) Znovu 1) + HAVING. FROM Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky GROUP BY pe.druh ) 2) Kolik Ks bylo průměrně. 1) Součet prodaných kusů pečiva AND o.datum >= #12/20/2010# AND o.datum <= #12/31/2010#

Dotazy (d) D3) Které pečivo se nejvíce dováží do Ostravy nebo Brna? (houska=8955) SELECT pe.druh, SUM(r.PocetKusu) AS [Pocet] FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND (pr.adresa = "Brno" OR pr.adresa = "Ostrava") GROUP BY pe.druh HAVING SUM(r.PocetKusu) = ( SELECT MAX(Pocet) FROM ( SELECT pe.druh, SUM(r.PocetKusu) AS [Pocet] FROM Prodejny pr, Objednavky o, RozpisObjednavky r, ); 3) Znovu 1) + HAVING. Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky GROUP BY pe.druh ) 2) Kolik Ks bylo max. 1) Součet prodaných kusů pečiva v daných městech AND (pr.adresa = "Brno" OR pr.adresa = "Ostrava")

Dotazy (d) D4) Které pečivo, která prodejna objednává nejvíce? (6xH,2xR) 3) V každé prodejně ponechám pouze pečivo s max. počtem kusů. SELECT dkusy.kodprodejny, dkusy.nazev, dkusy.druh, dkusy.pocet, dmax.pocetmax FROM (SELECT KodProdejny, MAX(Pocet) AS [PocetMax] FROM (SELECT pr.kodprodejny, pe.druh, SUM(r.PocetKusu) AS [Pocet] ) dmax, ) GROUP BY KodProdejny FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky GROUP BY pr.kodprodejny, pe.druh (SELECT pr.kodprodejny, pr.nazev, pe.druh, SUM(r.PocetKusu) AS [Pocet] ) dkusy FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky GROUP BY pr.kodprodejny, pr.nazev, pe.druh 2) Maximální počet ks pečiva v každé prodejně. 1) Počet ks každého druhu pečiva v každé prodejně. WHERE dmax.pocetmax = dkusy.pocet;

Dotazy (d) D5) Vypište, celkovou výši objednávek řetězce Rondo. (118300,8 Kč) SELECT SUM(Ceny) FROM (SELECT pr.nazev, SUM(r.PocetKusu)*pe.CenaZaKus AS [Ceny] FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (pr.kodprodejny = o.kodprodejny AND o.idobjednavky=r.idobjednavky AND pr.nazev = "Rondo" GROUP BY pr.nazev, pe.cenazakus );

Dotazy (d) X1) O kolik Kč by pekárna zvýšila zisk, kdyby zvedla cenu rohlíků a housek o 8%? (23552,256Kč) SELECT sprocenty.soucet - bezprocent.soucet FROM (SELECT SUM(Ceny) AS [Soucet] FROM (SELECT SUM(r.PocetKusu)*pe.CenaZaKus AS [Ceny] ) ) bezprocent, FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky AND (pe.druh = "Rohlík" OR pe.druh = "Houska" ) GROUP BY pe.cenazakus (SELECT SUM(Ceny) AS [Soucet] FROM (SELECT SUM(r.PocetKusu)*(pe.CenaZaKus*1.08) AS [Ceny] ) ) sprocenty; FROM Prodejny pr, Objednavky o, RozpisObjednavky r, Pecivo pe WHERE (o.idobjednavky=r.idobjednavky AND (pe.druh = "Rohlík" OR pe.druh = "Houska" ) GROUP BY pe.cenazakus