Zadania z SQL'a |
||
|
||
|
|
|
SELECT aso.idaso, aso.nazwaaso,count (s.VIN) as liczba_pojazdow, sum(us.cenauslugi*us.liczbauslug) as kwota FROM aso, serwis s, uslugiserwisowe us WHERE aso.idaso = s.idaso and us.idserwisu = s.idserwisu and datediff(year, s.dataserwisu, today()) = 1 GROUP BY aso.idaso, aso.nazwaaso ORDER BY liczba_pojazdow desc |
|
|
SELECT top 10 c.kodczesci, c.nazwaczesci, count(wc.kodczesci) as liczba, sa.idsaso FROM czesc c, wymianaczesci wc, serwis s, aso, siecaso sa WHERE c.kodczesci = wc.kodczesci and wc.idserwisu = s.idserwisu and datediff(year, s.dataserwisu, today()) < 2 and s.idaso = aso.idaso and sa.idsaso = aso.idsaso GROUP BY c.kodczesci, c.nazwaczesci, sa.idsaso ORDER BY liczba desc |
|
|
SELECT m.idmodelu, m.nazwamodelu, ma.idmarki, ma.nazwamarki, count(s.idserwisu) liczba_serwisow FROM model m, marka ma, pojazd p, serwis s WHERE m.idmarki = ma.idmarki and p.idmarki =m.idmarki and p.idmodelu = m.idmodelu and p.vin = s.vin and datediff(year, s.dataserwisu, today()) < 3 GROUP BY m.idmodelu, m.nazwamodelu, ma.idmarki, ma.nazwamarki ORDER BY liczba_serwisow desc
|
|
|
|
|
SELECT rs.nazwarodzajuserwisu, sum(wc.cenaczesci*wc.liczbaczesci)+sum(us.cenauslugi*us.liczbauslug) kwota
FROM rodzajserwisu rs, serwis s, wymianaczesci wc, uslugiserwisowe us
WHERE rs.idrs = s.idrs and s.idserwisu = wc.idserwisu and s.idserwisu = us.idserwisu and datediff(day, s.dataserwisu, today())<720
GROUP BY rs.nazwarodzajuserwisu
HAVING kwota > 100000
(Dodatkowe)Lista ASO (idASO, NazwaASO), liczba wymienionych części, liczba usług serwisowych, całkowity koszt serwisów (koszt wymiany części oraz koszt usług serwisowych), ale tylko tych ASO, które są Autoryzowanymi ASO dla Marki OPEL.
SELECT idaso , nazwaaso, l_serwisow, l_czesci , cena_czesci+us_cena, cena_czesci, us_cena FROM(
SELECT aso.idaso, aso.nazwaaso, count(wc.idserwisu) l_czesci, sum(wc.cenaczesci*wc.liczbaczesci) as cena_czesci,
(SELECT count(us.idserwisu) as us_ser
FROM serwis s , uslugiserwisowe us, aso aso1, autoryzowaneaso aa, marka m
WHERE aso1.idaso = aa.idaso and aa.idmarki = m.idmarki and m.nazwamarki = 'opel' and aso1.idaso = s.idaso and us.idserwisu = s.idserwisu and aso1.idaso = aso.idaso ) l_serwisow
,
(SELECT sum(us.cenauslugi) as us_cena
FROM serwis s , uslugiserwisowe us, aso aso1, autoryzowaneaso aa, marka m
WHERE aso1.idaso = aa.idaso and aa.idmarki = m.idmarki and m.nazwamarki = 'opel' and aso1.idaso = s.idaso and us.idserwisu = s.idserwisu and aso1.idaso = aso.idaso ) us_cena
FROM aso, autoryzowaneaso aa, marka m, wymianaczesci wc, serwis s
WHERE aso.idaso = aa.idaso and aa. idmarki = m.idmarki and m.nazwamarki = 'opel' and aso.idaso = s.idaso and s.idserwisu = wc.idserwisu
GROUP BY aso.idaso, aso.nazwaaso ) zap1