Úvod do SQL v systému SAS Martin Branda

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

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

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

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

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ů

Databázové systémy a SQL

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

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

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

Databázové systémy I

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

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

U koly na procvic ení jazyka T-SQL

Datové modelování II

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

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

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

Databázové systémy I

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

Databáze SQL SELECT. David Hoksza

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

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

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

MS Access Dotazy SQL

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

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

Měsíční statistika Listopad 2015 Monthly Statistics November 2015

Měsíční statistika Březen 2016 Monthly Statistics March 2016

Měsíční statistika Červenec 2015 Monthly Statistics July 2015

MS Access Dotazy SQL

KIV/ZIS - SELECT, opakování

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Obsah. SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting

Měsíční statistika Prosinec 2015 Monthly Statistics December 2015

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

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

Architektury databázových

INDEXY JSOU GRUNT. Pavel Stěhule

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

Mechanismus obarvení řádků browse

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

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

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

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

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

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

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

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

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,...

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

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Měsíční statistika Únor 2016 Monthly Statistics February 2016

Měsíční statistika Květen 2016 Monthly Statistics May 2016

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

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

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

Řešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)

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

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

PG 9.5 novinky ve vývoji aplikací

Databázové systémy a SQL

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

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

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

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

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

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

Jazyk SQL slajdy k přednášce NDBI001

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

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

SQL tříhodnotová logika

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

Databázové systémy a SQL

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

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

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

SQL. relační databázový systém. v úvodní kurz jazyka SQL

Materiál ke cvičením - SQL

MySQL manuál. Copyright: Adam Jun Stránky manuálu:

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

Použití databází na Webu

5. blok Souhrnné a skupinové dotazy

- sloupcové integritní omezení

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

NIBE F2026. Tepelné èerpadlo vzduch-voda UHB CZ LEK

8.2 Používání a tvorba databází

Operátory ROLLUP a CUBE

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

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

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

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

Transkript:

Úvod do SQL v systému SAS Martin Branda Tabulka vp_klient: klient_id jmeno prijmeni datnar adresa mesto pohlavi 1 Jana Nováková 01Mar1952 Hradecká 101 Praha Z 2 Josef Novotný 22Jan1980 Zámecká 25 Brno M 3 Karel Boží 14Sep1975 ČS armády 857 Lhota M 4 Martina Nováčková 11Jul1942 Náměstí TGM 5 Lhotka Z 5 Jan Berdych 26Jun1965 Počátecká 21 Olomouc M 6 Stanislav Bozetický 01Nov2000 Liberecká 11 Lichkov M 7 Ivana Karlová 07Oct1966 Wilsonova 6 Praha Z 8 Stela Zázvorová 05May1949 Sloužilova 6 Plzeň Z 9 Jiřina Bohdálková 08Jul1969 Krylova 333 Mladá Boleslav Z 10 Vladislav Horák 28Dec1975 Holická 54 Vysoké Mýto M Tabulka vp_smlouva: smlo_id odvetvi datpoc datkon klient_id 1 POV 01Jan2010 01Jan2012 1 2 MAJ 02Feb2012 1 3 POV 05Mar2009 2 4 ZIV 06Jun2009 06Jun2011 3 5 ZIV 03Mar2009 3 6 ZIV 18Jun2011 18Oct2011 3 7 POV 01Nov2010 4 8 ZIV 02Dec2012 4 9 POV 15Mar2009 15Mar2011 5 10 ZIV 16Jun2009 5 11 MAJ 03Mar2009 03Mar2011 5 12 MAJ 18Dec2011 6 13 POV 01Dec2010 01Dec2011 7 14 ZIV 02Sep2011 7 15 ZIV 05Aug2009 8 16 POV 06Jun2009 06Jun2011 8 17 MAJ 03Mar2009 9 18 MAJ 18Jun2011 18Mar2012 9 19 POV 01Jan2010 9 20 POV 02Feb2012 10 Tabulka vp_skody: skoda_id datum vyplaceno rezerva smlo_id 1 03May2011 20500 0 1 2 07Aug2010 12800 5000000 3 3 08Sep2010 1250 0 4 4 02Mar2011 120850 20000 11 5 30Nov2011 55600 0 13

6 02Mar2011 44100 10000 16 7 23Jul2011 200300 0 17 8 04May2011 45200 11000 1 9 15Mar2012 0 50000 20 /* Výběr některých sloupců */ create table smlouva_sloupce as select smlo_id, klient_id, odvetvi from sasuser.vp_smlouva; /* pouze vystup, nevytvori tabulku */ select smlo_id, klient_id, odvetvi from sasuser.vp_smlouva; /* Výběr některých sloupců */ create table klient_sloupce as select jmeno, prijmeni, datnar from sasuser.vp_klient; /* Výběr řádků podle kritérií */ create table smlouva_radky as select * from sasuser.vp_smlouva where odvetvi = "MAJ"; /* Výběr řádků podle kritérií */ create table smlouva_radky2 as select * from sasuser.vp_smlouva where odvetvi in ("POV","MAJ"); /* Spojení dvou tabulek */ create table klient_smlouva as select a.*, b.smlo_id, b.odvetvi ;

/* Počet smluv klienta - SPATNE */ create table pocet_smluv as select klient_id, jmeno, prijmeni, count(smlo_id) as pocet_smluv from klient_smlouva; /* Počet smluv klienta */ create table pocet_smluv as select klient_id, jmeno, prijmeni, count(smlo_id) as pocet_smluv from klient_smlouva group by klient_id order by pocet_smluv desc; /* Počet smluv klienta - LEPE */ create table pocet_smluv as select DISTINCT klient_id, jmeno, prijmeni, count(smlo_id) as pocet_smluv from klient_smlouva group by klient_id order by pocet_smluv desc; /* pocet smluv klienta v jednom kodu */ create table pocet_smluv2 as select a.klient_id, count(b.smlo_id) as pocet_smluv /* 1. napojte skody na smlouvy */ create table smlouva_skody as select a.*, b.* on (a.smlo_id = b.smlo_id); /* 2. spoctete pocet skod na smlouve */ create table smlouva_skody_pocet as select a.smlo_id, count(b.skoda_id) as pocet_skod

on (a.smlo_id = b.smlo_id) group by a.smlo_id; /* prvni smlouva klienta (smlouva s nejmensim datem pocatku) */ create table prvni_smlouva as select a.klient_id, a.prijmeni, b.smlo_id, b.datpoc group by a.klient_id having b.datpoc = min(b.datpoc); /* ukol - posledni skoda na smlouve */ create table smlouva_posledni_skoda as select a.smlo_id, b.skoda_id, b.datum on (a.smlo_id = b.smlo_id) group by a.smlo_id having b.datum = max(b.datum); /* pocet POV smluv klienta v jednom kodu - NE ZCELA DOBRE */ create table pocet_smluv3 as select a.klient_id,a.prijmeni, count(b.smlo_id) as pocet_smluv where b.odvetvi = "POV" /* pocet POV smluv klienta v jednom kodu */ create table pocet_smluv_pov as select a.klient_id, a.prijmeni, count(b.smlo_id) as pocet_smluv on (a.klient_id = b.klient_id and b.odvetvi = "POV")

/* UKOL: vsechny smlouvy a pocty skod s nenulovou rezervou a celkova vyse rezervy :P */ create table smlouva_rezerva as select a.smlo_id, count(b.skoda_id) as pocet, sum(b.rezerva) as rezerva on (a.smlo_id = b.smlo_id and b.rezerva > 0) group by a.smlo_id; /* pocet skod na smlouve po datu */ create table smlouva_pocet_skod_pd as select a.smlo_id, count(b.skoda_id) as pocet_skod on (a.smlo_id = b.smlo_id and b.datum > mdy(6,30,2010)) group by a.smlo_id; /* skody klienta - musime prejit pres smlouvu */ create table klient_skody as select a.klient_id, c.skoda_id left join sasuser.vp_skody c on (b.smlo_id = c.smlo_id) where c.skoda_id is not missing; /* celkove plneni na klienta v roce 2011 */ create table klient_skody_plneni2011 as select distinct a.klient_id, (case when sum(c.vyplaceno) =. then 0 else sum(c.vyplaceno) end) as plneni2011 left join sasuser.vp_skody c on (b.smlo_id = c.smlo_id and year(c.datum) = 2011)

DATA Step /* smlouvy POV */ data work.smlouvy_pov; set sasuser.vp_smlouva; if odvetvi = "POV"; /* ruzne vypocty v radcich */ data plnrez(drop = vyplaceno rezerva); set sasuser.vp_skody; plnrez = vyplaceno + rezerva; den_vzniku = day(datum); mesic_vzniku = month(datum); rok_vzniku = year(datum); /* spojeni dvou tabulek - NE ZCELA DOBRE */ /* POZOR - tabulky musi byt setridene podle klice!!! */ data klient_smlouva; merge sasuser.vp_klient sasuser.vp_smlouva; by klient_id; /* spojeni dvou tabulek - left join - pomoci In */ data klient_smlouva; merge sasuser.vp_klient(in = ink) sasuser.vp_smlouva; by klient_id; if ink;