ErAn156

oopab_sql_szibrig_3dbMinta_20200926

Sep 26th, 2020
1,569
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*1. minthaZH*/
  2. /*!!! adott néven lekérdezés létre hozás: "create view lekerdezesNeve as" !!!!*/
  3. /*Hozzon létre ELOFIZETESEK néven egy lekérdezést, amely kilistázza az összes előfizető
  4. nevét, az előfizetett folyóirat címét, és az előfizetett mennyiséget*/
  5. SELECT et.ENEV, FT.FCIM, EL.EFIZDB
  6. FROM ELOFIZ el, ETORZS et, FTORZS ft
  7. WHERE el.FAZON=ft.FAZON AND et.EKOD=el.EKOD
  8.  
  9. /*Hozzon létre egy ELOFIZETOK nevű lekérdezést, amely
  10. megjeleníti az előfizetők nevét, és címét (összevontan ’Cím’-néven: irányítószám + település +
  11. utca + házszám)*/
  12. SELECT ETORZS.ENEV AS 'név', EIRSZ+ ','+ETELEP+','+EUTCA AS 'lakcim'
  13. FROM ETORZS
  14.  
  15. /*Kérdezze le, hogy hány darab előfizető van összesen a rendszerben.*/
  16. SELECT COUNT(*) AS 'előfizetők száma'
  17. FROM ELOFIZ
  18.  
  19. /*Milyen aktuális előfizetések vannak éppen? (ami élő előfizetés)*/
  20. SELECT fcim, fkiad, enev
  21. FROM ELOFIZ,ETORZS,FTORZS
  22. WHERE ELOFIZ.EKOD=ETORZS.EKOD AND ELOFIZ.FAZON=FTORZS.FAZON AND
  23. EKDATUM<=GETDATE() AND EVDATUM>GETDATE()
  24.  
  25. /*Mely városból/településről hány darab előfizetőnk van?*/
  26. SELECT etelep, COUNT(ekod) AS 'előfizetok száma'
  27. FROM ETORZS
  28. GROUP BY etelep
  29.  
  30.  
  31. /*2. minthaZH*/
  32. /*Hozzon létre ELOFIZETESEK néven egy lekérdezést, amely kilistázza az összes előfizető
  33. nevét, az előfizetett folyóirat címét, és a folyóirat árát.*/
  34. SELECT enev, fcim, fhdij
  35. FROM FTORZS, ETORZS, ELOFIZ
  36. WHERE FTORZS.FAZON=ELOFIZ.FAZON AND ELOFIZ.EKOD=ETORZS.EKOD AND EKDATUM<=GETDATE() AND EVDATUM>GETDATE()
  37.  
  38. /*Hozzon létre egy ELOFIZETOK nevű lekérdezést, amely
  39. megjeleníti az előfizetők nevét, és címét (összevontan ’Cím’-néven: irányítószám + település +
  40. utca + házszám), ha IPM előfizetésük van*/
  41. SELECT enev, EIRSZ+','+ETELEP+','+EUTCA AS "lakcím"
  42. FROM ETORZS, FTORZS, ELOFIZ
  43. WHERE ETORZS.EKOD=ELOFIZ.EKOD AND ELOFIZ.FAZON=FTORZS.FAZON AND FTORZS.FAZON=8
  44.  
  45. /*Melyik újságot nem fizették még elő soha az előfizetők?*/
  46. SELECT fcim
  47. FROM FTORZS
  48. WHERE FAZON NOT IN (SELECT fazon FROM ELOFIZ)
  49.  
  50. /*Milyen újságokra lehet előfizetni, és milyen áron?*/
  51. SELECT fcim, fhdij
  52. FROM FTORZS
  53.  
  54. /*Mely városból/településről van a legtöbb előfizetőnk?*/
  55. SELECT top 1 etelep
  56. FROM etorzs
  57. GROUP BY etelep
  58.  
  59. /*3. minthaZH*/
  60.  
  61. /*Nézzük meg kinek fog lejárni ebben a hónapban az előfizetése.*/
  62. SELECT enev, ETORZS.EKOD
  63. FROM ETORZS INNER JOIN elofiz
  64. ON ETORZS.EKOD=ELOFIZ.EKOD
  65. WHERE DATEDIFF(mm, EVDATUM, GETDATE())=0
  66.  
  67. /*Hozzon létre egy ELOFIZETOK nevű lekérdezést, amely
  68. megjeleníti az előfizetők nevét, és címét (összevontan ’Cím’-néven: irányítószám + település +
  69. utca + házszám), életkoruk, és ha van előfizetésük akkor annak címét is.*/
  70.  
  71. SELECT enev, EIRSZ+','+ETELEP+','+EUTCA AS 'előfizető címe', DATEDIFF(yy, ESZDAT, GETDATE()) AS 'életkor', FCIM
  72. FROM ETORZS, ELOFIZ, FTORZS
  73. WHERE ETORZS.EKOD=ELOFIZ.EKOD AND ELOFIZ.FAZON=FTORZS.FAZON
  74.  
  75. /*Mely személyeknek nincs jelenleg aktív előfizetése?*/
  76. SELECT enev, ekod
  77. FROM ETORZS
  78. WHERE ekod NOT IN
  79. (SELECT ekod FROM ELOFIZ
  80. WHERE EVDATUM>=GETDATE())
  81.  
  82. /*Mennyi előfizetés van jelenleg?*/
  83. SELECT COUNT(*)
  84. FROM ELOFIZ
  85. WHERE EVDATUM>GETDATE() AND EKDATUM<=GETDATE()
  86.  
  87. /*Mi a legdrágább újság neve és kiadója?
  88. ez az én fajtám ami szerintem sokkal egyszerűbb*/
  89. SELECT top 1 FCIM, FKIAD, FHDIJ
  90. FROM FTORZS
  91. ORDER BY FHDIJ DESC
  92.  
  93. /*ez a tanár féle ami szerintem túl van bonyolitva*/
  94. SELECT top 1 FCIM, FKIAD, FHDIJ
  95. FROM FTORZS
  96. WHERE fhdij=(SELECT MAX(fhdij) FROM FTORZS)
  97.  
RAW Paste Data