Advertisement
blooming8

query ra

Apr 21st, 2022
974
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.56 KB | None | 0 0
  1. /* selezionare targa, nome modello, nome fabbrica
  2. di tutti i veicoli non prodotti da fiat */
  3.  
  4. select targa, cod_modello, nome_modello, nome_fabbrica
  5. from veicoli
  6. Inner Join modelli USING (cod_modello)
  7. Inner Join fabbriche USING (cod_fabbrica)
  8. where UPPER(nome_fabbrica) <> 'FIAT'
  9. order by targa;
  10.  
  11. /* per ogni fabbrica visualizzare nome fabbrica,
  12. cilindrata massima, velocità massima, cavalli fiscali massimi,
  13. dei veicoli da essa prodotti. Ordinare per cavalli fiscali decrescenti */
  14.  
  15. select
  16.     nome_fabbrica,
  17.     max(cilindrata) as "Cilindrata massima",
  18.     max(velocita) as "Velocita' massima",
  19.     max(cavalli_fiscali) as "Cavalli fiscali massimi"
  20. from fabbriche
  21. inner join modelli using (cod_fabbrica)
  22. inner join veicoli using (cod_modello)
  23. group by nome_fabbrica
  24. order by max(cavalli_fiscali) desc;
  25.  
  26. /* trovare i proprietari che hanno venduto veicoli
  27. cognome, nome, targa veicolo,data acquisto e cessione,
  28. giorni e anni di possesso
  29. */
  30.  
  31. select
  32.     cognome,
  33.     nome,
  34.     targa,
  35.     data_acquisto,
  36.     data_cessione,
  37.     (data_cessione - data_acquisto) as "Giorni",
  38.     round(((data_cessione - data_acquisto) / 365), 1) as "Anni"
  39. from proprietari
  40. inner join proprieta using (cod_proprietario)
  41. where data_cessione is not NULL;
  42.  
  43. /* Trovare i proprietari delle province di Roma e Milano che possiedono attualmente
  44. veicoli FIAT, e voglio nome, cognome, nome fabbrica, nome modello, cilindrata, targa */
  45.  
  46. select
  47.     nome,
  48.     cognome,
  49.     nome_fabbrica,
  50.     nome_modello,
  51.     cilindrata,
  52.     targa
  53. from proprietari  
  54. inner join proprieta using (cod_proprietario)
  55. inner join veicoli using (targa)
  56. inner join modelli using (cod_modello)
  57. where upper(provincia) = 'RM' or upper(provincia) = 'MI'
  58. and data_cessione is null and (upper(nome_fabbrica = 'FIAT');
  59.  
  60. /* Quanti sono i proprietari che hanno posseduto o possiedono i veicoli suddivisi per fabbriche.
  61. Cercare nome fabbrica e numero proprietari che hanno posseduto veicoli di quella fabbrica. */
  62.  
  63. select
  64.     nome_fabbrica,
  65.     count(cognome) as "Numero proprietari"
  66. from proprietari
  67. inner join proprieta using (cod_proprietario)
  68. inner join veicoli using (targa)
  69. inner join modelli using (cod_modello)
  70. inner join fabbriche using (cod_fabbrica)
  71. group by nome_fabbrica
  72. order by nome_fabbrica desc;
  73.  
  74. /* Trovare targa, modello, fabbrica, dei veicoli che non usano benzina senza piombo
  75. e che sono stati costruiti da fabbriche diverse da FIAT */
  76.  
  77. select
  78.     targa,
  79.     descrizione_combustibile,
  80.     nome_modello,
  81.     nome_fabbrica
  82. from combustibili
  83. inner join veicoli using (cod_combustibile)
  84. inner join modelli using (cod_modello)
  85. inner join fabbriche using (cod_fabbrica)
  86. where upper(descrizione_combustibile) <> '%benzina senza piombo' and upper(nome_fabbrica) <> 'FIAT'
  87. order by targa;
  88.  
  89. /* targhe veicoli costruiti da fabbriche
  90. che non sia HONDA eccetto quelle dei veicoli
  91. possedute da proprietari che abitano in provicinia
  92. di bolzano ob ergamo */
  93.  
  94. select targa
  95. from veicoli
  96. inner join modelli using (cod_modello)
  97. inner join fabbriche using (cod_fabbrica)
  98. where upper(nome_fabbrica) is not "Honda"
  99.  
  100. /* trovare dei veicoli che usano combustibile
  101. benzina super, e che appartengono a modelli con
  102. più di due versioni. */
  103.  
  104. select targa
  105.     from veicoli
  106.     inner join combustibili using (cod_combustibile)
  107.     where upper(descrizione_combustibile) = 'BENZINA SUPER'
  108. intersect
  109. select targa
  110.     from veicoli
  111.     inner join modelli using (cod_modello)
  112.     where numero_versioni > 2;
  113.  
  114. select cilindrata from veicoli
  115. where cod_combustibile = '02';
  116.  
  117.  
  118.  
  119. /* selezionare veicoli con cilindrata superiore
  120. alla cilindrata media */
  121.  
  122. select * from veicoli
  123. where cilindrata =
  124. (select avg(cilindrata) from veicoli);
  125.  
  126.  /* targa e descr. combustibile dei veicoli+
  127. cui proprietari risiedono in provincia di
  128. Pisa e Firenze */
  129.  
  130. select targa, descrizione_combustibile
  131. from veicoli
  132. inner join combustibili using (cod_combustibile)
  133. where targa in
  134. (select targa from proprieta
  135. inner join proprietari using (cod_proprietario)
  136. where upper(provincia) in ('PI', 'FI'))
  137. order by targa;
  138.  
  139. -- Craere una vista con targhe, date acquisto cessione, cognome, nome dei proprietari,
  140. -- indirizzo e province, per le province diverse da Roma.
  141.  
  142.  
  143. CREATE OR REPLACE VIEW V1 (V1_Targa, V1_Data_acquisto, V1, Data_cessione, V1_Cognome, V1_Nome,
  144. V1_Indirizzo, V1_Provincia)
  145. AS
  146. SELECT targa, data_cessione, data_acquisto, cognome, nome, indirizzo, provincia
  147. FROM veicoli
  148. INNER JOIN proprietari USING (cod_proprietario)
  149. INNER JOIN proprieta USING (targa)
  150. WHERE UPPER(provincia) <> 'RM';
  151.  
  152.  
  153. SELECT * FROM V1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement