Advertisement
Guest User

Untitled

a guest
Aug 25th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.32 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE VIEW EsordiReflusso AS
  3. SELECT  E.Paziente, YEAR(E.DataEsordio)-YEAR(P.DataNascita) AS Eta, E.DataEsordio
  4. FROM    esordio E INNER JOIN paziente P ON E.Paziente = P.CodFiscale
  5. WHERE   E.Patologia = 'Reflusso gastroesofageo'
  6.         AND YEAR(E.DataEsordio) = 2008;
  7.  
  8. CREATE OR REPLACE VIEW MeseCasi AS
  9. SELECT  D.Mese, IF(MONTH(ER.DataEsordio) IS NULL, 0, COUNT(*)) AS NumCasi
  10. FROM    EsordiReflusso ER
  11.         RIGHT OUTER JOIN
  12.         (
  13.             SELECT  MONTH(E.DataEsordio) AS Mese
  14.             FROM esordio E
  15.             GROUP BY MONTH(E.DataEsordio)
  16.         ) AS D ON MONTH(ER.DataEsordio) = D.Mese
  17. GROUP BY D.Mese
  18. ORDER BY D.Mese;
  19.  
  20. CREATE OR REPLACE VIEW MesiPiuCasi AS
  21. SELECT  MC.Mese, MC.NumCasi
  22. FROM    MeseCasi MC
  23. WHERE   MC.NumCasi >= ALL (
  24.                     SELECT  MC2.NumCasi
  25.                     FROM    MeseCasi MC2
  26.                     )
  27. GROUP BY MC.Mese;
  28.  
  29. SELECT  IF(MPC.Mese IS NULL,MC.Mese, MPC.Mese),
  30.         IF(MC.NumCasi = 0, NULL, MC.NumCasi),
  31.         (
  32.             SELECT  AVG(E2.Eta)
  33.             FROM    EsordiReflusso E2
  34.             WHERE   E2.DataEsordio <= E.DataEsordio
  35.            
  36.         ) AS EtaMediaPrec
  37. FROM    MeseCasi MC
  38.         NATURAL LEFT OUTER JOIN
  39.         MesiPiuCasi MPC
  40.         LEFT OUTER JOIN
  41.         EsordiReflusso E ON MC.Mese = MONTH(E.DataEsordio)
  42. WHERE   (MPC.Mese IS NULL AND MC.NumCasi = 0)
  43.             OR (MC.NumCasi = MPC.NumCasi)
  44. GROUP BY MC.Mese
  45. ORDER BY MC.Mese;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement