Advertisement
Guest User

Untitled

a guest
Jun 11th, 2018
1,412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 33.66 KB | None | 0 0
  1. IF OBJECT_ID('adres', 'U') IS NOT NULL
  2.   DROP TABLE adres;
  3.  
  4. IF OBJECT_ID('egzemplarz', 'U') IS NOT NULL
  5.   DROP TABLE egzemplarz;
  6.  
  7. IF OBJECT_ID('kontakt', 'U') IS NOT NULL
  8.   DROP TABLE kontakt;
  9.  
  10. IF OBJECT_ID('produktFaktura', 'U') IS NOT NULL
  11.   DROP TABLE produktFaktura;
  12.  
  13. IF OBJECT_ID('produktZamowienie', 'U') IS NOT NULL
  14.   DROP TABLE produktZamowienie;
  15.  
  16. IF OBJECT_ID('produkt', 'U') IS NOT NULL
  17.   DROP TABLE produkt;
  18.  
  19.  IF OBJECT_ID('faktury', 'U') IS NOT NULL
  20.   DROP TABLE faktury;
  21.  
  22.  IF OBJECT_ID('zamowienie', 'U') IS NOT NULL
  23.   DROP TABLE zamowienie;
  24.  
  25.  IF OBJECT_ID('klient', 'U') IS NOT NULL
  26.   DROP TABLE klient;
  27.  
  28. DROP PROC Dodaj_zamowienie;
  29. DROP PROC Dostawy;
  30. DROP PROC Koszyk;
  31. DROP PROC Usun_kontakt;
  32. DROP PROC Wstaw_klienta;
  33. DROP PROC Wstaw_kontakt;
  34. DROP PROC Wstaw_produkt;
  35. DROP PROC Zmodyfikuj_kontakt;
  36.  
  37. DROP FUNCTION ListaProduktow;
  38. DROP FUNCTION ZamowieniaKlienta;
  39. DROP FUNCTION CenaZamowienia;
  40.  
  41. DROP VIEW Dane_Klientow;
  42. DROP VIEW WszystkieZamowienia;
  43.  
  44.  
  45. CREATE TABLE klient
  46.     (
  47.      login VARCHAR (64) NOT NULL ,
  48.      haslo VARCHAR (64) NOT NULL ,
  49.      imie VARCHAR (64) NOT NULL CONSTRAINT ck_klient_imie CHECK (imie LIKE '[A-Z]%'),
  50.      nazwisko VARCHAR (64) NOT NULL CONSTRAINT ck_klient_nazw CHECK (nazwisko LIKE '[A-Z]%'),
  51.      nip VARCHAR (64) CONSTRAINT ck_klient_nip CHECK(nip LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
  52.      nazwa_firmy VARCHAR (64),
  53.     )
  54.     ON "default"
  55. GO
  56.  
  57. ALTER TABLE klient ADD CONSTRAINT klient_PK PRIMARY KEY CLUSTERED (login)
  58.      WITH (
  59.      ALLOW_PAGE_LOCKS = ON ,
  60.      ALLOW_ROW_LOCKS = ON )
  61.      ON "default"
  62.     GO
  63.  
  64.  
  65.  
  66. CREATE TABLE adres
  67.     (
  68.      klient_login VARCHAR (64) NOT NULL,
  69.      ulica VARCHAR (64) NOT NULL CONSTRAINT ck_adres_ul CHECK (ulica LIKE '[A-Z]%'),
  70.      nr_domu INTEGER NOT NULL CONSTRAINT ck_adres_dom CHECK (nr_domu > 0),
  71.      nr_lokalu INTEGER CONSTRAINT ck_adres_lok CHECK (nr_lokalu > 0),
  72.      kod_pocztowy VARCHAR (64) NOT NULL CONSTRAINT ck_adres_kod CHECK(kod_pocztowy LIKE '[0-9][0-9]-[0-9][0-9][0-9]'),
  73.      miasto VARCHAR (64) NOT NULL CONSTRAINT ck_adres_mia CHECK (miasto LIKE '[A-Z]%')
  74.     )
  75.     ON "default"
  76. GO
  77.  
  78. ALTER TABLE adres ADD CONSTRAINT adres_PK PRIMARY KEY CLUSTERED (klient_login)
  79.      WITH (
  80.      ALLOW_PAGE_LOCKS = ON ,
  81.      ALLOW_ROW_LOCKS = ON )
  82.      ON "default"
  83.     GO
  84.  
  85.  
  86.  
  87. CREATE TABLE kontakt
  88.     (
  89.      klient_login VARCHAR (64) NOT NULL,
  90.      nr_tel INTEGER NOT NULL CONSTRAINT ck_kont_tel CHECK(nr_tel LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
  91.      fax INTEGER NOT NULL CONSTRAINT ck_kont_fax CHECK(fax LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
  92.      email VARCHAR (64) NOT NULL CONSTRAINT ck_email_mal CHECK (email LIKE '%@%'),
  93.     )
  94.     ON "default"
  95. GO
  96.  
  97. ALTER TABLE kontakt ADD CONSTRAINT kontakt_PK PRIMARY KEY CLUSTERED (klient_login)
  98.      WITH (
  99.      ALLOW_PAGE_LOCKS = ON ,
  100.      ALLOW_ROW_LOCKS = ON )
  101.      ON "default"
  102.     GO
  103.  
  104.  
  105.  
  106. CREATE TABLE produkt
  107.     (
  108.      kod_produktu VARCHAR (64) NOT NULL ,
  109.      nazwa_produktu VARCHAR (64) NOT NULL CONSTRAINT ck_nazwprod_nazwa CHECK (nazwa_produktu LIKE '[A-Z]%'),
  110.      producent VARCHAR (64) NOT NULL CONSTRAINT ck_prod_prod CHECK (producent LIKE '[A-Z]%'),
  111.      cena_netto MONEY NOT NULL CONSTRAINT ck_cennet_cena CHECK (cena_netto > 0),
  112.      cena_brutto MONEY NOT NULL CONSTRAINT ck_cenbrut_cena CHECK (cena_brutto > 0),
  113.      kolor VARCHAR (64) NOT NULL ,
  114.          ilosc INTEGER NOT NULL CONSTRAINT ck_ilosc_ile CHECK (ilosc >=0),
  115.      kategoria VARCHAR (64) NOT NULL CONSTRAINT ck_kateg_kat CHECK (kategoria LIKE '[A-Z]%')
  116.     )
  117.     ON "default"
  118. GO
  119.  
  120. ALTER TABLE produkt ADD CONSTRAINT produkt_PK PRIMARY KEY CLUSTERED (kod_produktu)
  121.      WITH (
  122.      ALLOW_PAGE_LOCKS = ON ,
  123.      ALLOW_ROW_LOCKS = ON )
  124.      ON "default"
  125.     GO
  126.  
  127.  
  128.  
  129. CREATE TABLE faktury
  130.     (
  131.      faktura INTEGER NOT NULL ,
  132.      nr_faktury INTEGER NOT NULL CONSTRAINT ck_faktury_nr CHECK (nr_faktury > 0),
  133.    --  zamowienie_nr INTEGER NOT NULL CONSTRAINT ck_faktury_zam CHECK (zamowienie_nr > 0),
  134.      klient_login VARCHAR (64) NOT NULL,
  135.      data_sprzedazy DATETIME NOT NULL CONSTRAINT ck_faktury_data DEFAULT GETDATE(),
  136.      wartosc_netto MONEY NOT NULL CONSTRAINT ck_faktury_wn CHECK (wartosc_netto > 0),
  137.      wartosc_brutto MONEY NOT NULL CONSTRAINT ck_faktury_wb CHECK (wartosc_brutto > 0),
  138.      forma_platnosci VARCHAR (64) NOT NULL CONSTRAINT ck_faktury_forma CHECK (forma_platnosci IN ('przedplata', 'platnosc przy odbiorze')) DEFAULT 'przedplata'
  139.     )
  140.     ON "default"
  141. GO
  142.  
  143. ALTER TABLE faktury ADD CONSTRAINT faktury_PK PRIMARY KEY CLUSTERED (faktura)
  144.      WITH (
  145.      ALLOW_PAGE_LOCKS = ON ,
  146.      ALLOW_ROW_LOCKS = ON )
  147.      ON "default"
  148.     GO
  149.  
  150.  
  151.  
  152. CREATE TABLE produktFaktura
  153.     (
  154.      produkt_kod_produktu VARCHAR (64) NOT NULL,
  155.      faktury_faktura INTEGER NOT NULL
  156.     )
  157.     ON "default"
  158. GO
  159.  
  160. ALTER TABLE produktFaktura ADD CONSTRAINT produktFaktura_PK PRIMARY KEY CLUSTERED (produkt_kod_produktu, faktury_faktura)
  161.      WITH (
  162.      ALLOW_PAGE_LOCKS = ON ,
  163.      ALLOW_ROW_LOCKS = ON )
  164.      ON "default"
  165.     GO
  166.  
  167.  
  168.  
  169. CREATE TABLE egzemplarz
  170.     (
  171.      nr_seryjny INTEGER NOT NULL ,
  172.      produkt_kod_produktu VARCHAR (64) NOT NULL,
  173.      data_zakupu DATETIME NOT NULL CONSTRAINT ck_egz_datzak DEFAULT GETDATE(),
  174.      data_sprzedazy DATETIME,
  175.      czy_sprzedano INTEGER NOT NULL CONSTRAINT ck_egz_czy CHECK (czy_sprzedano IN ('0', '1')) DEFAULT '0'
  176.     )
  177.     ON "default"
  178. GO
  179.  
  180. ALTER TABLE egzemplarz ADD CONSTRAINT egzemplarz_PK PRIMARY KEY CLUSTERED (nr_seryjny)
  181.      WITH (
  182.      ALLOW_PAGE_LOCKS = ON ,
  183.      ALLOW_ROW_LOCKS = ON )
  184.      ON "default"
  185.     GO
  186.  
  187.  
  188.  
  189. CREATE TABLE zamowienie
  190.     (
  191.      id_zamowienia INTEGER NOT NULL ,
  192.          nr_zamowienia INTEGER NOT NULL CONSTRAINT ck_zam_nr CHECK (nr_zamowienia > 0),
  193.      klient_login VARCHAR (64) NOT NULL,
  194.      data_zlozenia DATETIME NOT NULL CONSTRAINT ck_zam_datzl DEFAULT GETDATE(),
  195.      data_realizacji DATETIME NOT NULL CONSTRAINT ck_zam_datreal DEFAULT DATEADD(day,3,GETDATE()),
  196.      data_wysylki DATETIME NOT NULL CONSTRAINT ck_zam_datwys DEFAULT DATEADD(day,3,GETDATE()),
  197.      forma_dostawy VARCHAR (64) NOT NULL  CONSTRAINT ck_zam_forma CHECK (forma_dostawy IN ('kurier', 'poczta polska', 'odbior osobisty')) DEFAULT 'kurier',
  198.          koszt_dostawy INTEGER NOT NULL DEFAULT '30'
  199.     )
  200.     ON "default"
  201. GO
  202.  
  203. ALTER TABLE zamowienie
  204.      ADD CONSTRAINT zamowienie_PK PRIMARY KEY CLUSTERED (id_zamowienia)
  205.      WITH (
  206.      ALLOW_PAGE_LOCKS = ON ,
  207.      ALLOW_ROW_LOCKS = ON )
  208.      ON "default"
  209.     GO
  210.  
  211.  
  212.  
  213. CREATE TABLE produktZamowienie
  214.     (
  215.      produkt_kod_produktu VARCHAR (64) NOT NULL,
  216.      zamowienie_nr INTEGER NOT NULL
  217.     )
  218.     ON "default"
  219. GO
  220.  
  221. ALTER TABLE produktZamowienie ADD CONSTRAINT produktZamowienie_PK PRIMARY KEY CLUSTERED (produkt_kod_produktu, zamowienie_nr)
  222.      WITH (
  223.      ALLOW_PAGE_LOCKS = ON ,
  224.      ALLOW_ROW_LOCKS = ON )
  225.      ON "default"
  226.     GO
  227.  
  228.  
  229.  
  230.  
  231. -- Relacje  
  232.  
  233.  
  234. ALTER TABLE adres
  235.     ADD CONSTRAINT adres_klient_FK FOREIGN KEY
  236.     (
  237.      klient_login
  238.     )
  239.     REFERENCES klient
  240.     (
  241.      login
  242.     )
  243.     ON DELETE NO ACTION
  244.     ON UPDATE NO ACTION
  245. GO
  246.  
  247. ALTER TABLE egzemplarz
  248.     ADD CONSTRAINT egzemplarz_produkt_FK FOREIGN KEY
  249.     (
  250.      produkt_kod_produktu
  251.     )
  252.     REFERENCES produkt
  253.     (
  254.      kod_produktu
  255.     )
  256.     ON DELETE NO ACTION
  257.     ON UPDATE NO ACTION
  258. GO
  259.  
  260.  
  261.  
  262. ALTER TABLE faktury
  263.     ADD CONSTRAINT faktury_klient_FK FOREIGN KEY
  264.     (
  265.      klient_login
  266.     )
  267.     REFERENCES klient
  268.     (
  269.      login
  270.     )
  271.     ON DELETE NO ACTION
  272.     ON UPDATE NO ACTION
  273. GO
  274.  
  275.  
  276. ALTER TABLE kontakt
  277.     ADD CONSTRAINT kontakt_klient_FK FOREIGN KEY
  278.     (
  279.      klient_login
  280.     )
  281.     REFERENCES klient
  282.     (
  283.      login
  284.     )
  285.     ON DELETE NO ACTION
  286.     ON UPDATE NO ACTION
  287. GO
  288.  
  289. ALTER TABLE produktFaktura
  290.     ADD CONSTRAINT produktFaktura_faktury_FK FOREIGN KEY
  291.     (
  292.      faktury_faktura
  293.     )
  294.     REFERENCES faktury
  295.     (
  296.      faktura
  297.     )
  298.     ON DELETE NO ACTION
  299.     ON UPDATE NO ACTION
  300. GO
  301.  
  302. ALTER TABLE produktFaktura
  303.     ADD CONSTRAINT produktFaktura_produkt_FK FOREIGN KEY
  304.     (
  305.      produkt_kod_produktu
  306.     )
  307.     REFERENCES produkt
  308.     (
  309.      kod_produktu
  310.     )
  311.     ON DELETE NO ACTION
  312.     ON UPDATE NO ACTION
  313. GO
  314.  
  315. ALTER TABLE produktZamowienie
  316.     ADD CONSTRAINT produktZamowienie_produkt_FK FOREIGN KEY
  317.     (
  318.      produkt_kod_produktu
  319.     )
  320.     REFERENCES produkt
  321.     (
  322.      kod_produktu
  323.     )
  324.     ON DELETE NO ACTION
  325.     ON UPDATE NO ACTION
  326. GO
  327.  
  328. ALTER TABLE produktZamowienie
  329.     ADD CONSTRAINT produktZamowienie_zamowienie_FK FOREIGN KEY
  330.     (
  331.      zamowienie_nr
  332.     )
  333.     REFERENCES zamowienie
  334.     (
  335.      id_zamowienia
  336.     )
  337.     ON DELETE NO ACTION
  338.     ON UPDATE NO ACTION
  339. GO
  340.  
  341.  
  342. ALTER TABLE zamowienie
  343.     ADD CONSTRAINT zamowienie_klient_FK FOREIGN KEY
  344.     (
  345.      klient_login
  346.     )
  347.     REFERENCES klient
  348.     (
  349.      login
  350.     )
  351.     ON DELETE NO ACTION
  352.     ON UPDATE NO ACTION
  353. GO
  354.  
  355. INSERT INTO klient VALUES
  356. ( 'Nazar03' , 'xppew%^85' , 'Nazar' ,'Staron' ,'68572088910' ,'Bosch Sp.z o.o.' ),
  357. ( 'Przemko27' , 'ogioe(!54' , 'Przemko' ,'Rozek' ,'37382448272' ,'Okno Company' ),
  358. ( 'Wili65' , 'lmedn*!59' , 'Wili' ,'Galkowski' ,'76895392878' ,'Ryba S.A.' ),
  359. ( 'Hartmund24' , 'mfmer^%45' , 'Hartmund' ,'Jurewicz' ,'13436056105' ,'Canon Company' ),
  360. ( 'Aurela54' , 'hqaug@$03' , 'Aurela' ,'Biesiada' ,'21858979550' ,'Olympus Company' ),
  361. ( 'Mieryclawa42' , 'amxqz%^09' , 'Mieryclawa' ,'Szumski' ,'69967491286' ,'Ryba Sp.z o.o.' ),
  362. ( 'Lilla82' , 'pclqn&%40' , 'Lilla' ,'Budnik' ,'17392732311' ,'Okno Company' ),
  363. ( 'Felicytes30' , 'zfmyc%#76' , 'Felicytes' ,'Kijak' ,'64545923690' ,'Olympus Industries' ),
  364. ( 'Rodolf72' , 'loxdw@)47' , 'Rodolf' ,'Banka' ,'24446607675' ,'Ryba Company' ),
  365. ( 'Hamid56' , 'tttkl%&20' , 'Hamid' ,'Wesoloski' ,'45448760871' ,'Ryba Industries' ),
  366. ( 'Wasilika11' , 'kfpis(&74' , 'Wasilika' ,'Brozek' ,'47721984190' ,'Canon Sp.z o.o.' ),
  367. ( 'Edda16' , 'zxkli#%49' , 'Edda' ,'Chudzik' ,'17971493081' ,'Okno Company' ),
  368. ( 'Kiura33' , 'srlcz##69' , 'Kiura' ,'Marecki' ,'72654823686' ,'Ryba S.A.' ),
  369. ( 'Druzjanna54' , 'tbrda$)11' , 'Druzjanna' ,'Golombek' ,'34456709178' ,'Olympus Sp.z o.o.' ),
  370. ( 'Praskowia44' , 'pcltx^)98' , 'Praskowia' ,'Goscinski' ,'21404671882' ,'Olympus Company' ),
  371. ( 'Przemko63' , 'jlvpm^^94' , 'Przemko' ,'Glogowski' ,'96834940813' ,'Olympus Industries' ),
  372. ( 'Margaryta24' , 'zmjsb*#80' , 'Margaryta' ,'Gawrych' ,'77978697139' ,'Okno S.A.' ),
  373. ( 'Szymeon06' , 'smucj&(28' , 'Szymeon' ,'Wielgus' ,'94876010755' ,'Sony Company' ),
  374. ( 'Tomomasa41' , 'kmtvm**58' , 'Tomomasa' ,'Lipa' ,'63627356983' ,'Okno Company' ),
  375. ( 'Bob44' , 'ozmpv$(44' , 'Bob' ,'Sitkowski' ,'71836201010' ,'Sony Sp.z o.o.' ),
  376. ( 'Malik48' , 'sogun^&08' , 'Malik' ,'Slomkowski' ,'92821518933' ,'Olympus Company' ),
  377. ( 'Simion81' , 'bwlpz#$79' , 'Simion' ,'Mlynarski' ,'53936755672' ,'Ryba Company' ),
  378. ( 'Joachem45' , 'wnoem&@37' , 'Joachem' ,'Lata' ,'69398435112' ,'Canon Industries' ),
  379. ( 'Otilda81' , 'ivvjm%(68' , 'Otilda' ,'Bienkowski' ,'44274915128' ,'Ryba S.A.' ),
  380. ( 'Jacenty74' , 'rlosk&%45' , 'Jacenty' ,'Stepnowski' ,'47648789276' ,'Okno S.A.' ),
  381. ( 'Hellena74' , 'mmuxd*!08' , 'Hellena' ,'Karwowski' ,'18048541365' ,'Bosch Sp.z o.o.' ),
  382. ( 'Stamislaw14' , 'bxnfs^(77' , 'Stamislaw' ,'Filipkowski' ,'20766512746' ,'Okno Sp.z o.o.' ),
  383. ( 'Bogodar74' , 'lqiin#^61' , 'Bogodar' ,'Kozak' ,'76475325916' ,'Sony Industries' ),
  384. ( 'Melcyda51' , 'ezisd%!66' , 'Melcyda' ,'Bonar' ,'11313531310' ,'Bosch S.A.' ),
  385. ( 'Sawery85' , 'mxuos#*10' , 'Sawery' ,'Siuda' ,'61353501288' ,'Olympus S.A.' ),
  386. ( 'Wieczeslawa25' , 'yvxep@@97' , 'Wieczeslawa' ,'Wajda' ,'66461047543' ,'Olympus Sp.z o.o.' ),
  387. ( 'Imogena62' , 'gakvl^&10' , 'Imogena' ,'Ogonowski' ,'68877343760' ,'Ryba S.A.' ),
  388. ( 'Golfrida87' , 'jyydg%(61' , 'Golfrida' ,'Kaczmarczyk' ,'77075101450' ,'Ryba Company' ),
  389. ( 'Serwiliusz01' , 'aqfwf!!36' , 'Serwiliusz' ,'Zuraw' ,'83463405113' ,'Bosch Industries' ),
  390. ( 'Boghdan50' , 'mgohy(%76' , 'Boghdan' ,'Blaszkiewicz' ,'88262370905' ,'Sony Company' ),
  391. ( 'Alim32' , 'nfeuz^@57' , 'Alim' ,'Banka' ,'72727889390' ,'Olympus Sp.z o.o.' ),
  392. ( 'Margo61' , 'sjgeu$!15' , 'Margo' ,'Niemczyk' ,'56223173401' ,'Sony Industries' ),
  393. ( 'Hersz03' , 'isswi#^70' , 'Hersz' ,'Terlecki' ,'44180387880' ,'Okno Company' ),
  394. ( 'Azacja62' , 'gerrd^(80' , 'Azacja' ,'Piechowski' ,'20796217132' ,'Bosch S.A.' ),
  395. ( 'Reinert88' , 'uwkfu*%34' , 'Reinert' ,'Chromy' ,'72037990952' ,'Bosch Company' ),
  396. ( 'Zhanna20' , 'hljzz%)72' , 'Zhanna' ,'Gracyalny' ,'37113056472' ,'Ryba Sp.z o.o.' ),
  397. ( 'Klementyna03' , 'calhd))95' , 'Klementyna' ,'Nycz' ,'53323024333' ,'Canon Sp.z o.o.' ),
  398. ( 'Bibian45' , 'ywpfh*&78' , 'Bibian' ,'Gardocki' ,'67525238067' ,'Okno S.A.' ),
  399. ( 'Frida31' , 'lmwrf!#04' , 'Frida' ,'Andrzejewski' ,'40297098423' ,'Ryba Sp.z o.o.' ),
  400. ( 'Ignaca73' , 'zjhzm&!79' , 'Ignaca' ,'Paczkowski' ,'71180829079' ,'Olympus Company' ),
  401. ( 'Lubomierz36' , 'kfzkx#@22' , 'Lubomierz' ,'Kolinski' ,'90632904638' ,'Olympus Company' ),
  402. ( 'Annelisa78' , 'mtgwb)$18' , 'Annelisa' ,'Stodola' ,'66241811186' ,'Okno S.A.' ),
  403. ( 'Ermelinda06' , 'tyeee$%03' , 'Ermelinda' ,'Golab' ,'65846945156' ,'Sony Industries' ),
  404. ( 'Ruggero43' , 'aizkw)*40' , 'Ruggero' ,'Ciesielski' ,'37559841258' ,'Okno S.A.' ),
  405. ( 'Mahmet74' , 'hhcxs*@99' , 'Mahmet' ,'Smialy' ,'42112595635' ,'Ryba Sp.z o.o.' )
  406.  
  407.  
  408.  
  409. INSERT INTO kontakt VALUES
  410. ( 'Nazar03' , '217078011' , '516172366' ,'Nazar03@o2.pl' ),
  411. ( 'Przemko27' , '411777637' , '219058621' ,'Przemko27@gmail.com' ),
  412. ( 'Wili65' , '781391787' , '256418182' ,'Wili65@onet.pl' ),
  413. ( 'Hartmund24' , '822558684' , '683649848' ,'Hartmund24@gmail.com' ),
  414. ( 'Aurela54' , '576621471' , '916369357' ,'Aurela54@amu.edu.pl' ),
  415. ( 'Mieryclawa42' , '769405553' , '996205813' ,'Mieryclawa42@hotmail.com' ),
  416. ( 'Lilla82' , '822362708' , '634034785' ,'Lilla82@interia.pl' ),
  417. ( 'Felicytes30' , '196210713' , '646557368' ,'Felicytes30@gmail.com' ),
  418. ( 'Rodolf72' , '253028845' , '498853233' ,'Rodolf72@onet.pl' ),
  419. ( 'Hamid56' , '979088186' , '907462531' ,'Hamid56@o2.pl' ),
  420. ( 'Wasilika11' , '922198975' , '693700054' ,'Wasilika11@o2.pl' ),
  421. ( 'Edda16' , '270137615' , '113791829' ,'Edda16@o2.pl' ),
  422. ( 'Kiura33' , '190081701' , '385008848' ,'Kiura33@o2.pl' ),
  423. ( 'Druzjanna54' , '788812333' , '923114398' ,'Druzjanna54@outlook.com' ),
  424. ( 'Praskowia44' , '195815206' , '318835709' ,'Praskowia44@gmail.com' ),
  425. ( 'Przemko63' , '468238041' , '739369137' ,'Przemko63@o2.pl' ),
  426. ( 'Margaryta24' , '604158330' , '937922048' ,'Margaryta24@gmail.com' ),
  427. ( 'Szymeon06' , '120090493' , '483229873' ,'Szymeon06@outlook.com' ),
  428. ( 'Tomomasa41' , '420057888' , '359373112' ,'Tomomasa41@outlook.com' ),
  429. ( 'Bob44' , '689449596' , '774906732' ,'Bob44@gmail.com' ),
  430. ( 'Malik48' , '812744586' , '965949274' ,'Malik48@hotmail.com' ),
  431. ( 'Simion81' , '295622091' , '917165061' ,'Simion81@o2.pl' ),
  432. ( 'Joachem45' , '154792124' , '118289922' ,'Joachem45@outlook.com' ),
  433. ( 'Otilda81' , '947683230' , '482387153' ,'Otilda81@outlook.com' ),
  434. ( 'Jacenty74' , '577067797' , '698050635' ,'Jacenty74@hotmail.com' ),
  435. ( 'Hellena74' , '298748841' , '890713430' ,'Hellena74@amu.edu.pl' ),
  436. ( 'Stamislaw14' , '584852539' , '234881590' ,'Stamislaw14@o2.pl' ),
  437. ( 'Bogodar74' , '934741147' , '698066224' ,'Bogodar74@hotmail.com' ),
  438. ( 'Melcyda51' , '611850752' , '592355365' ,'Melcyda51@hotmail.com' ),
  439. ( 'Sawery85' , '304646903' , '583211171' ,'Sawery85@amu.edu.pl' ),
  440. ( 'Wieczeslawa25' , '402925486' , '439718388' ,'Wieczeslawa25@hotmail.com' ),
  441. ( 'Imogena62' , '148421476' , '825075528' ,'Imogena62@outlook.com' ),
  442. ( 'Golfrida87' , '413625018' , '199570957' ,'Golfrida87@o2.pl' ),
  443. ( 'Serwiliusz01' , '355139605' , '640210323' ,'Serwiliusz01@gmail.com' ),
  444. ( 'Boghdan50' , '119861794' , '949389182' ,'Boghdan50@gmail.com' ),
  445. ( 'Alim32' , '647941620' , '606999480' ,'Alim32@outlook.com' ),
  446. ( 'Margo61' , '301811617' , '393941484' ,'Margo61@interia.pl' ),
  447. ( 'Hersz03' , '188682851' , '249733373' ,'Hersz03@outlook.com' ),
  448. ( 'Azacja62' , '162922949' , '711270738' ,'Azacja62@onet.pl' ),
  449. ( 'Reinert88' , '449941163' , '883746246' ,'Reinert88@gmail.com' ),
  450. ( 'Zhanna20' , '125125082' , '601273280' ,'Zhanna20@hotmail.com' ),
  451. ( 'Klementyna03' , '791545573' , '178465274' ,'Klementyna03@amu.edu.pl' ),
  452. ( 'Bibian45' , '345330582' , '206249262' ,'Bibian45@amu.edu.pl' ),
  453. ( 'Frida31' , '280291887' , '116129855' ,'Frida31@o2.pl' ),
  454. ( 'Ignaca73' , '482777637' , '927324866' ,'Ignaca73@interia.pl' ),
  455. ( 'Lubomierz36' , '114201562' , '977936182' ,'Lubomierz36@interia.pl' ),
  456. ( 'Annelisa78' , '312548890' , '882604626' ,'Annelisa78@onet.pl' ),
  457. ( 'Ermelinda06' , '211843326' , '370486855' ,'Ermelinda06@onet.pl' ),
  458. ( 'Ruggero43' , '874586057' , '174244335' ,'Ruggero43@outlook.com' ),
  459. ( 'Mahmet74' , '484017589' , '356249959' ,'Mahmet74@hotmail.com' )
  460.  
  461.  
  462.  
  463. INSERT INTO adres VALUES
  464. ( 'Nazar03' , 'Rumiankowa' , '45' ,'1' ,'52-100' ,'Gdansk' ),
  465. ( 'Przemko27' , 'Rzepowa' , '78' ,'19' ,'81-715' ,'Szczecin' ),
  466. ( 'Wili65' , 'Wesola' , '61' ,'37' ,'41-220' ,'Wroclaw' ),
  467. ( 'Hartmund24' , 'Kwiatowa' , '27' ,'17' ,'71-586' ,'Krakow' ),
  468. ( 'Aurela54' , 'Rumiankowa' , '61' ,'33' ,'93-458' ,'Poznan' ),
  469. ( 'Mieryclawa42' , 'Jablkowa' , '71' ,'22' ,'60-220' ,'Lodz' ),
  470. ( 'Lilla82' , 'Malinowa' , '33' ,'18' ,'26-571' ,'Warszawa' ),
  471. ( 'Felicytes30' , 'Rzepowa' , '85' ,'20' ,'85-508' ,'Warszawa' ),
  472. ( 'Rodolf72' , 'Rumiankowa' , '9' ,'46' ,'21-463' ,'Gdansk' ),
  473. ( 'Hamid56' , 'Gruszkowa' , '45' ,'34' ,'12-314' ,'Krakow' ),
  474. ( 'Wasilika11' , 'Malinowa' , '51' ,'11' ,'70-991' ,'Poznan' ),
  475. ( 'Edda16' , 'Malinowa' , '23' ,'19' ,'66-266' ,'Poznan' ),
  476. ( 'Kiura33' , 'Mila' , '54' ,'27' ,'67-400' ,'Lodz' ),
  477. ( 'Druzjanna54' , 'Jablkowa' , '71' ,'30' ,'71-426' ,'Lodz' ),
  478. ( 'Praskowia44' , 'Rumiankowa' , '81' ,'28' ,'14-799' ,'Warszawa' ),
  479. ( 'Przemko63' , 'Rumiankowa' , '70' ,'37' ,'81-728' ,'Krakow' ),
  480. ( 'Margaryta24' , 'Gruszkowa' , '44' ,'11' ,'33-891' ,'Wroclaw' ),
  481. ( 'Szymeon06' , 'Rzepowa' , '6' ,'9' ,'80-214' ,'Gdansk' ),
  482. ( 'Tomomasa41' , 'Mila' , '78' ,'34' ,'27-493' ,'Wroclaw' ),
  483. ( 'Bob44' , 'Mila' , '98' ,'2' ,'47-484' ,'Gdansk' ),
  484. ( 'Malik48' , 'Wesola' , '50' ,'6' ,'37-555' ,'Krakow' ),
  485. ( 'Simion81' , 'Kwiatowa' , '79' ,'19' ,'15-202' ,'Krakow' ),
  486. ( 'Joachem45' , 'Rumiankowa' , '16' ,'39' ,'40-788' ,'Warszawa' ),
  487. ( 'Otilda81' , 'Mila' , '64' ,'3' ,'17-932' ,'Lodz' ),
  488. ( 'Jacenty74' , 'Rzepowa' , '72' ,'2' ,'83-194' ,'Warszawa' ),
  489. ( 'Hellena74' , 'Kwiatowa' , '40' ,'24' ,'10-237' ,'Wroclaw' ),
  490. ( 'Stamislaw14' , 'Rumiankowa' , '9' ,'1' ,'54-107' ,'Wroclaw' ),
  491. ( 'Bogodar74' , 'Rzepowa' , '73' ,'4' ,'28-742' ,'Gdansk' ),
  492. ( 'Melcyda51' , 'Mila' , '45' ,'17' ,'10-141' ,'Szczecin' ),
  493. ( 'Sawery85' , 'Jablkowa' , '53' ,'26' ,'42-357' ,'Krakow' ),
  494. ( 'Wieczeslawa25' , 'Malinowa' , '68' ,'29' ,'44-883' ,'Szczecin' ),
  495. ( 'Imogena62' , 'Wesola' , '19' ,'28' ,'32-110' ,'Szczecin' ),
  496. ( 'Golfrida87' , 'Rzepowa' , '50' ,'4' ,'10-511' ,'Krakow' ),
  497. ( 'Serwiliusz01' , 'Wesola' , '21' ,'32' ,'57-900' ,'Poznan' ),
  498. ( 'Boghdan50' , 'Mila' , '75' ,'7' ,'13-964' ,'Szczecin' ),
  499. ( 'Alim32' , 'Jablkowa' , '10' ,'31' ,'18-147' ,'Wroclaw' ),
  500. ( 'Margo61' , 'Malinowa' , '97' ,'23' ,'26-879' ,'Wroclaw' ),
  501. ( 'Hersz03' , 'Jablkowa' , '86' ,'42' ,'28-159' ,'Szczecin' ),
  502. ( 'Azacja62' , 'Kwiatowa' , '9' ,'49' ,'95-435' ,'Poznan' ),
  503. ( 'Reinert88' , 'Jablkowa' , '53' ,'15' ,'73-129' ,'Wroclaw' ),
  504. ( 'Zhanna20' , 'Rzepowa' , '6' ,'26' ,'10-952' ,'Szczecin' ),
  505. ( 'Klementyna03' , 'Jablkowa' , '28' ,'38' ,'18-801' ,'Krakow' ),
  506. ( 'Bibian45' , 'Jablkowa' , '40' ,'48' ,'95-866' ,'Gdansk' ),
  507. ( 'Frida31' , 'Mila' , '89' ,'10' ,'53-141' ,'Wroclaw' ),
  508. ( 'Ignaca73' , 'Rumiankowa' , '34' ,'31' ,'10-723' ,'Wroclaw' ),
  509. ( 'Lubomierz36' , 'Mila' , '97' ,'3' ,'64-621' ,'Krakow' ),
  510. ( 'Annelisa78' , 'Wesola' , '81' ,'44' ,'35-202' ,'Wroclaw' ),
  511. ( 'Ermelinda06' , 'Rumiankowa' , '51' ,'6' ,'45-653' ,'Gdansk' ),
  512. ( 'Ruggero43' , 'Rumiankowa' , '30' ,'5' ,'15-369' ,'Warszawa' ),
  513. ( 'Mahmet74' , 'Gruszkowa' , '66' ,'14' ,'39-859' ,'Poznan' )
  514.  
  515.  
  516.  
  517. INSERT INTO produkt VALUES
  518. ( 'klaw123', 'Klawiatura przewodowa', 'Logitech', '99.99', '120.98', 'czarny', '1', 'Akcesoria komputerowe' ),
  519. ( 'klaw112', 'Klawiatura przewodowa', 'Samsung', '49.99', '60.99', 'czarny', '3', 'Akcesoria komputerowe' ),
  520. ( 'klaw547', 'Klawiatura bezprzewodowa', 'Razer', '250.00', '305.00', 'niebieski', '2', 'Akcesoria komputerowe' ),
  521. ( 'klaw997', 'Klawiatura bezprzewodowa', 'Sony', '129.99', '159.99', 'fioletowy', '4', 'Akcesoria komputerowe' ),
  522. ( 'druk07', 'Drukarka atramentowa', 'Brother', '250.00', '305.00', 'czarny', '2', 'Akcesoria komputerowe' ),
  523. ( 'druk99', 'Drukarka laserowa', 'Samsung', '399.99', '489.98', 'bialy', '1', 'Akcesoria komputerowe' ),
  524. ( 'monit35', 'Monitor komputerowy', 'Samsung', '509.99', '620.00', 'czarny', '6', 'Akcesoria komputerowe' ),
  525. ( 'monit92', 'Monitor komputerowy', 'BenQ', '399.00', '485.99', 'bialy', '3', 'Akcesoria komputerowe' ),
  526. ( 'mysz69', 'Myszka komputerowa przewodowa', 'Logitech', '29.99', '36.58', 'czarny', '4', 'Akcesoria komputerowe' ),
  527. ( 'mysz07', 'Myszka komputerowa bezprzewodowa', 'Cyborg', '99.99', '121.98', 'czarny', '2', 'Akcesoria komputerowe' ),
  528. ( 'zelaz71', 'Zelazko elektryczne', 'Philips', '167.55', '199.99', 'bialy', '3', 'Sprzet AGD' ),
  529. ( 'zelaz09', 'Zelazko elektryczne', 'Bosh', '171.31', '209.00', 'czarny', '2', 'Sprzet AGD' ),
  530. ( 'odku91', 'Odkurzacz reczny', 'Philips', '97.55', '199.99', 'bialy', '1', 'Sprzet AGD' ),
  531. ( 'went63', 'Wentylator przenosny', 'AEG', '99.99', '121.98', 'bialy', '3', 'Sprzet AGD' ),
  532. ( 'czaj50', 'Czajnik elektryczny', 'Zelmer', '97.55', '199.99', 'czarny', '5', 'Sprzet AGD' ),
  533. ( 'czaj30', 'Czajnik elektryczny', 'Electrolux', '180.99', '219.00', 'czerwony', '2', 'Sprzet AGD' ),
  534. ( 'blend02', 'Blender', 'Bosh', '138.99', '169.99', 'srebrny', '5', 'Sprzet AGD' ),
  535. ( 'eksp99', 'Ekspres cisnieniowy', 'Siemens', '204.99', '249.99', 'czarny', '2', 'Sprzet AGD' ),
  536. ( 'eksp06', 'Ekspres cisnieniowy', 'Ziemens', '399.99', '489.98', 'srebrny', '1', 'Sprzet AGD' ),
  537. ( 'miks594', 'Mikser reczny', 'Zelmer', '129.99', '159.99', 'bialy', '3', 'Sprzet AGD' )
  538.  
  539.  
  540. INSERT INTO egzemplarz(nr_seryjny, produkt_kod_produktu, data_zakupu) VALUES
  541. ( '12254684', 'klaw123', '2016-07-21' ),
  542. ( '53415874', 'klaw112', '2017-07-03' ),
  543. ( '96541256', 'klaw112', '2012-06-09' ),
  544. ( '75214214', 'klaw112', '2016-09-29' ),
  545. ( '65325354', 'klaw547', '2014-06-14' ),
  546. ( '87421457', 'klaw547', '2017-07-07' ),
  547. ( '15365247', 'klaw997', '2016-04-18' ),
  548. ( '75425897', 'klaw997', '2015-08-09' ),
  549. ( '25423654', 'klaw997', '2015-04-11' ),
  550. ( '23568974', 'klaw997', '2011-03-15' ),
  551. ( '70412548', 'druk07', '2016-05-21' ),
  552. ( '95603541', 'druk07', '2016-09-20' ),
  553. ( '74124575', 'druk99', '2017-01-21' ),
  554. ( '45757414', 'monit35', '2015-06-16' ),
  555. ( '74125474', 'monit35', '2016-11-15' ),
  556. ( '77457417', 'monit35', '2014-12-28' ),
  557. ( '74287798', 'monit35', '2013-09-01' ),
  558. ( '74521525', 'monit35', '2009-02-05' ),
  559. ( '75124256', 'monit35', '2016-01-21' ),
  560. ( '75145877', 'monit92', '2011-07-27' ),
  561. ( '20145257', 'monit92', '2015-06-28' ),
  562. ( '10235457', 'monit92', '2016-07-28' ),
  563. ( '54785578', 'mysz69', '2014-09-09' ),
  564. ( '52314077', 'mysz69', '2016-07-18' ),
  565. ( '77872078', 'mysz69', '2017-08-08' ),
  566. ( '78078070', 'mysz69', '2016-04-21' ),
  567. ( '78232040', 'mysz07', '2017-07-12' ),
  568. ( '30782474', 'mysz07', '2016-09-20' ),
  569. ( '78208070', 'zelaz71', '2017-09-11' ),
  570. ( '83654214', 'zelaz71', '2017-10-16' ),
  571. ( '09452178', 'zelaz71', '2017-01-23' ),
  572. ( '09642233', 'zelaz09', '2016-11-03' ),
  573. ( '78245678', 'zelaz09', '2017-08-05' ),
  574. ( '12525444', 'odku91', '2014-07-19' ),
  575. ( '30785254', 'went63', '2013-12-21' ),
  576. ( '07807524', 'went63', '2016-10-22' ),
  577. ( '78082054', 'went63', '2017-09-07' ),
  578. ( '07854567', 'czaj50', '2017-05-09' ),
  579. ( '90456047', 'czaj50', '2017-02-23' ),
  580. ( '93075478', 'czaj50', '2016-03-15' ),
  581. ( '97453450', 'czaj50', '2016-06-14' ),
  582. ( '08078577', 'czaj50', '2017-01-31' ),
  583. ( '87070827', 'czaj30', '2017-02-28' ),
  584. ( '08785700', 'czaj30', '2017-05-29' ),
  585. ( '78556786', 'blend02', '2017-07-08' ),
  586. ( '40257541', 'blend02', '2016-09-19' ),
  587. ( '44102074', 'blend02', '2017-04-07' ),
  588. ( '44077652', 'blend02', '2017-03-23' ),
  589. ( '35636407', 'blend02', '2016-09-20' ),
  590. ( '50221120', 'eksp99', '2014-07-18' ),
  591. ( '12120120', 'eksp99', '2015-10-12' ),
  592. ( '70203217', 'eksp06', '2012-12-25' ),
  593. ( '05075721', 'miks594', '2016-09-20' ),
  594. ( '64040575', 'miks594', '2017-05-28' ),
  595. ( '97774007', 'miks594', '2017-01-01' )
  596.  
  597. GO
  598. CREATE PROCEDURE Wstaw_klienta (
  599.         @login VARCHAR(64),
  600.         @haslo VARCHAR(64),
  601.         @imie VARCHAR(64),
  602.                 @nazwisko VARCHAR(64),
  603.                 @nip VARCHAR(64)=NULL,
  604.                 @nazwa_firmy VARCHAR(64)=NULL )
  605. AS
  606.  
  607. INSERT INTO klient (login, haslo, imie, nazwisko, nip, nazwa_firmy)
  608.         VALUES (@login, @haslo, @imie, @nazwisko, @nip, @nazwa_firmy)
  609.  
  610. GO
  611. -- Wstaw_klienta 'test1', 'test2', 'test3', 'test4', '12345678910', 'test6'
  612. GO
  613. CREATE PROCEDURE Wstaw_kontakt (
  614.         @login VARCHAR(64),
  615.         @nr_tel INT,
  616.         @fax INT,
  617.                 @email VARCHAR(64)
  618.                 )
  619. AS
  620. INSERT INTO kontakt (klient_login, nr_tel, fax, email)
  621.         VALUES (@login, @nr_tel, @fax, @email)
  622. GO
  623.  
  624. --Wstaw_kontakt 'test1', 369258147, 123456789, 'test@gmail.com'
  625. GO
  626. CREATE PROCEDURE Zmodyfikuj_kontakt (
  627.         @login VARCHAR(64),
  628.         @nr_tel INT,
  629.         @fax INT,
  630.                 @email VARCHAR(64)
  631.                 )
  632. AS
  633. UPDATE  kontakt
  634. SET     nr_tel = @nr_tel,
  635.                 fax = @fax,
  636.                 email = @email
  637. WHERE   klient_login = @login
  638. GO
  639.  
  640. --Zmodyfikuj_kontakt 'test1', 369258147, 123456789, 'tttttttttttest@gmail.com'
  641. GO
  642.  CREATE PROCEDURE Usun_kontakt (
  643.                 @login VARCHAR(64)
  644.                 )
  645. AS
  646.         DELETE FROM kontakt
  647.         WHERE klient_login = @login
  648. GO
  649.  
  650. --Usun_kontakt 'test1'
  651.  
  652. GO
  653. CREATE PROCEDURE Wstaw_produkt (
  654.         @kod VARCHAR(64),
  655.         @nazwa VARCHAR(64),
  656.                 @producent VARCHAR(64),
  657.                 @netto MONEY,
  658.                 @brutto MONEY,
  659.                 @kolor VARCHAR(64),
  660.                 @ilosc VARCHAR(64),
  661.                 @kategoria VARCHAR(64),
  662.                 @seryjny INT
  663.                 )
  664. AS
  665. INSERT INTO produkt (kod_produktu, nazwa_produktu, producent, cena_netto, cena_brutto, kolor, ilosc, kategoria)
  666.         VALUES (@kod, @nazwa, @producent, @netto, @brutto, @kolor, @ilosc, @kategoria)
  667. INSERT INTO egzemplarz (nr_seryjny, produkt_kod_produktu)
  668.                 VALUES (@seryjny, @kod)
  669. GO
  670.  
  671. --Wstaw_produkt 'atest1', 'testowy', 'zarabisty', 9999, 1000, 'black', 1, 'test', 9999999999999
  672.  
  673. GO
  674. Create Procedure Dodaj_zamowienie (
  675.                 @login Varchar(64),
  676.                 @produkt Varchar(64))
  677. As
  678. BEGIN TRAN
  679.         If exists (Select TOP 1 nr_seryjny From Egzemplarz Where (produkt_kod_produktu Like @produkt AND czy_sprzedano = 0) ORDER BY nr_seryjny)
  680.         begin
  681.         Declare @id Int;
  682.                 If not exists (Select id_zamowienia From Zamowienie)
  683.                 set @id = 1
  684.                 else
  685.                 Set @id = (Select MAX(id_zamowienia) From Zamowienie) + 1;
  686.  
  687.         Declare @nr Int;
  688.                 If not exists (Select nr_zamowienia From Zamowienie)
  689.                 set @nr = 1
  690.                 else If exists (Select nr_zamowienia From Zamowienie Where (klient_login = @login AND Month(GETDATE()) = Month(data_zlozenia) AND DAY(GETDATE()) = DAY(data_zlozenia)))
  691.                 set @nr = (Select MAX(nr_zamowienia) From Zamowienie Where (klient_login = @login AND Month(GETDATE()) = Month(data_zlozenia) AND DAY(GETDATE()) = DAY(data_zlozenia)))
  692.                 else
  693.                 Set @nr = (Select MAX(nr_zamowienia) From Zamowienie) + 1;
  694.        
  695.         Declare @fak int;
  696.                 If not exists (Select faktura From Faktury)
  697.                 set @fak = 1
  698.                 else
  699.                 Set @fak = (Select MAX(faktura) From Faktury ) + 1;
  700.  
  701.         Declare @nrfak int;
  702.                 If not exists (Select nr_faktury From Faktury)
  703.                 set @nrfak = 1
  704.                 else If exists (Select nr_faktury From Faktury Where (klient_login = @login AND Month(GETDATE()) = Month(data_sprzedazy) AND DAY(GETDATE()) = DAY(data_sprzedazy)))
  705.                 Set @nrfak = (Select MAX(nr_faktury) From Faktury Where (klient_login = @login AND Month(GETDATE()) = Month(data_sprzedazy) AND DAY(GETDATE()) = DAY(data_sprzedazy)))
  706.                 else
  707.                 Set @nrfak = (Select MAX(nr_faktury) From Faktury ) + 1;
  708.  
  709.         Insert Into Zamowienie (id_zamowienia, nr_zamowienia, klient_login) Values
  710.                 ( @id, @nr, @login )
  711.         Insert Into Faktury (faktura, nr_faktury, klient_login, wartosc_netto, wartosc_brutto) Values
  712.                 ( @fak, @nrfak, @login, (Select cena_netto from Produkt where kod_produktu = @produkt), (Select cena_brutto from Produkt where kod_produktu = @produkt) )
  713.         Insert Into produktZamowienie Values
  714.                 ( @produkt, @id )
  715.         Insert Into produktFaktura Values
  716.                 ( @produkt, @fak )
  717.  
  718.         Declare @seria Int;
  719.         Set @seria = (Select TOP 1 nr_seryjny From Egzemplarz Where (produkt_kod_produktu Like @produkt AND czy_sprzedano = 0) ORDER BY nr_seryjny)
  720.  
  721.         Update Egzemplarz
  722.                 Set czy_sprzedano = 1,
  723.                 data_sprzedazy = Getdate()
  724.                 Where nr_seryjny = @seria
  725. end
  726. else
  727.         Print 'brak dostępnych egzeplarzy tego produktu!'
  728. COMMIT TRANSACTION
  729. GO
  730.  
  731. GO
  732. Create Procedure Koszyk (
  733.         @login Varchar(64),
  734.         @pro1 Varchar(64),
  735.         @pro2 Varchar(64)=NULL,
  736.         @pro3 Varchar(64)=NULL,
  737.         @pro4 Varchar(64)=NULL,
  738.         @pro5 Varchar(64)=NULL)
  739. As
  740.         EXEC Dodaj_zamowienie @login, @pro1
  741.         if @pro2 IS NOT NULL
  742.                 EXEC Dodaj_zamowienie @login, @pro2;
  743.         if (@pro3 IS NOT NULL)
  744.                 EXEC Dodaj_zamowienie @login, @pro3;
  745.         if (@pro4 IS NOT NULL)
  746.                 EXEC Dodaj_zamowienie @login, @pro4;
  747.         if (@pro5 IS NOT NULL)
  748.                 EXEC Dodaj_zamowienie @login, @pro5;
  749. Go
  750.  
  751. -- Koszyk 'test1', 'monit92', 'monit35'
  752.  
  753. --Procedura raportuje wszystkie zamowienia z danego typu wysyłki
  754. GO
  755. CREATE PROCEDURE Dostawy (
  756.         @rodzaj_dostawy VARCHAR(64)
  757.                 )
  758. AS
  759. SELECT nr_zamowienia,
  760.                 klient_login,
  761.                 data_zlozenia,
  762.                 data_wysylki
  763. FROM zamowienie
  764. WHERE forma_dostawy = @rodzaj_dostawy
  765. GO
  766.  
  767. -- Dostawy 'kurier'
  768.  
  769. --wyświetla nazwy produktow podanego producenta. jesli takowego nie ma/jest bledny, wyswietla liste wszystkich producentow
  770. GO
  771. CREATE FUNCTION ListaProduktow
  772. (
  773.     @nazwa VARCHAR(64)
  774. )
  775.     RETURNS @produkty TABLE(nazwa VARCHAR(64))
  776. AS
  777. BEGIN
  778.     IF @nazwa IN (SELECT producent FROM produkt)
  779.         INSERT INTO @produkty
  780.                 SELECT nazwa_produktu
  781.                 FROM   produkt
  782.                 WHERE  producent = @nazwa;
  783.     ELSE
  784.         INSERT INTO @produkty
  785.                 SELECT DISTINCT producent
  786.                 FROM   produkt;
  787.         RETURN;
  788. END
  789. GO
  790.  
  791. --SELECT * FROM ListaProduktow('Bosh')
  792. --SELECT * FROM ListaProduktow('OnePlus')
  793.  
  794. --zwraca liste zamowien danego klienta
  795. GO
  796. CREATE FUNCTION ZamowieniaKlienta(
  797.         @login VARCHAR(64)
  798.         )
  799. RETURNS TABLE
  800. AS
  801. RETURN
  802. SELECT nr_zamowienia,
  803.                 login,
  804.                 cena_brutto
  805. FROM klient k
  806. JOIN zamowienie z
  807. ON z.klient_login=k.login
  808. JOIN produktZamowienie PR
  809. ON Pr.zamowienie_nr=z.id_zamowienia
  810. JOIN produkt p
  811. ON p.kod_produktu=PR.produkt_kod_produktu
  812. WHERE k.login=@login
  813. GO
  814. --SELECT * FROM ZamowieniaKlienta('test1')
  815.  
  816. --zwraca totalna cene zamowienia o podanym numerze
  817. GO
  818. CREATE FUNCTION CenaZamowienia
  819. (
  820.         @numer INT
  821. )
  822. RETURNS MONEY
  823. AS
  824. BEGIN
  825. DECLARE @suma MONEY
  826. set @suma = (SELECT SUM(cena_brutto) FROM WszystkieZamowienia)
  827. RETURN @suma
  828. END;
  829. GO
  830. --SELECT dbo.CenaZamowienia(1)
  831. GO
  832. CREATE VIEW Dane_Klientow(login, imie, nazwisko, ulica, nr_domu, kod_pocztowy, miasto, nr_tel, email)
  833. AS
  834. (
  835.         SELECT  login,
  836.                         imie,
  837.                         nazwisko,
  838.                         ulica,
  839.                         nr_domu,
  840.                         kod_pocztowy,
  841.                         miasto,
  842.                         nr_tel,
  843.                         email
  844.         FROM    klient k
  845.         JOIN    kontakt kont
  846.         ON              kont.klient_login = k.login
  847.         JOIN    adres adr
  848.         ON              adr.klient_login = k.login
  849. );
  850. GO
  851.  
  852. --SELECT * FROM Dane_Klientow
  853. GO
  854. CREATE VIEW WszystkieZamowienia(nr_zamowienia, login, nazwa_produktu, cena_netto, cena_brutto)
  855. AS
  856. (SELECT z.nr_zamowienia,
  857.                 k.login,
  858.                 p.nazwa_produktu ,
  859.                 p.cena_netto,
  860.                 p.cena_brutto
  861. FROM klient k
  862. JOIN zamowienie z
  863. ON z.klient_login=k.login
  864. JOIN produktZamowienie PR
  865. ON Pr.zamowienie_nr=z.id_zamowienia
  866. JOIN produkt p
  867. ON p.kod_produktu=PR.produkt_kod_produktu
  868. )
  869. GO
  870.  
  871. --SELECT * FROM WszystkieZamowienia
  872. GO
  873. Create Trigger tri_dostawa On Zamowienie After Insert
  874. As
  875.         If (Select SUM(wartosc_brutto) From Faktury
  876.                 Where nr_faktury = (Select MAX(nr_zamowienia) From Zamowienie
  877.                 Where (Month(GETDATE()) = Month(data_zlozenia) AND DAY(GETDATE()) = DAY(data_zlozenia)))) > 300
  878. begin
  879.        
  880.         Update Zamowienie
  881.         Set koszt_dostawy = 0
  882.         Where nr_zamowienia = (Select MAX(nr_zamowienia) From Zamowienie
  883.                 Where (Month(GETDATE()) = Month(data_zlozenia) AND DAY(GETDATE()) = DAY(data_zlozenia)))
  884. end
  885. Go
  886.  
  887. --Dodaj_zamowienie 'Serwiliusz01' , 'druk07'
  888. --Select * from Zamowienie
  889. --Dodaj_zamowienie 'Serwiliusz01' , 'klaw547'
  890. --Select * from Zamowienie
  891.  
  892. GO
  893. Create Trigger tri_egzemplarz On egzemplarz Instead Of Delete
  894. As
  895.         Update Egzemplarz
  896.         Set czy_sprzedano = 1
  897.         Where nr_seryjny = (Select d.nr_seryjny From deleted d)
  898.  
  899.         Print 'Nie mozna usuwac egzeplarzy z rejestru'
  900.         Rollback
  901. GO
  902.  
  903. --Delete from egzemplarz Where nr_seryjny = '06456843'
  904. --Delete from egzemplarz Where nr_seryjny = '44102074'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement