Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2015, 09:30
seloal
 
Fecha de Ingreso: abril-2015
Mensajes: 8
Antigüedad: 9 años
Puntos: 0
Pregunta Consultas SQL de ORACLE express

Me plantearon unas consultas en un examen y no se como realizarlas, me ayudaría mucho para estudiar si alguien me ayudara a hacerlas o a darme cuenta como se hacen para tenerlas de ejemplo.


Aquí los enunciados:

A. Es necesario mostrar el numero de tickets que hay en cada estado (ticket_status_code)
juntamente con el código de ese estado, siempre y cuando el ticket este expedido por un citroen (manufacturer_name) de categoría económica (vehicle_type_description). Si algún estado no tiene ningún ticket no se debe mostrar por pantalla.


B. Se ha descubierto que el sistema ha sacado algunos tickets por error debido al hecho que un vez solicitado el pago se ha generado un evento 'Crear Pago' (Make Payment) pero la fecha del ticket se ha grabado en el campo de fecha del campo cancelado (date_ticket_cancelled) i la barrera se a levantado como si el pago se hubiese realizado correctamente. Se quiere el nombre i el apellido del cliente, así como el telefono de su casa i el identificador del ticket (pcn_ticket_id). Es necesario tener en cuenta que los campos de fecha que no pertocan para un ticket determinado se formatean con un NULL.


C. En el momento en el que el sistema detecta que alguien quiere hacer el pago del ticket de parking genera un evento, y por tanto un proceso llamado ‘Crear pago’ (Make Payment). Dar por pantalla el numero de procesos de este estilo iniciado por el sistema por población (‘town_city’) conjuntamente con el nombre de esta población.


D. Se requiere mostrar por pantalla el nombre y apellidos de los clientes que no son ‘Cleveland’ i que se les ha generado un ticket correcto (‘ticket_status_description’) una vez ha querido pagarlo, es decir, que no se le ha cancelado ni a salido erróneo, Es necesario tener en cuenta que hace falta comprobar no solo el estado, si no también las fechas de la tabla PCN_Parking_Tickets (si son nulas o no, no deberían serlo, en ese caso no ha de aparecer en pantalla), se valorara hacerlo con MINUS.


E. Queremos saber todos los datos de clientes (relaciones ‘Customers’, ‘Addresses’, y
‘Officers’) de los clientes por los cuales se ha generado algún tique erróneo y que han cancelado alguna vez una operación a partir de la implantación de las nuevas tarifas el 1 de enero de 2015.



Aqui las tablas:




Código SQL:
Ver original
  1. CREATE TABLE Ref_Vehicle_Manufactures
  2. (
  3. manufacturer_code CHAR(6),
  4. manufacturer_name Varchar2(30),
  5. PRIMARY KEY (manufacturer_code)
  6. );
  7.  
  8.  
  9. CREATE TABLE Ref_Vehicle_Types
  10. (
  11. vehicle_type_code CHAR(6),
  12. vehicle_type_description Varchar2(30),
  13. PRIMARY KEY (vehicle_type_code)
  14. );
  15.  
  16.  
  17. CREATE TABLE Ref_PCN_Ticket_Types
  18. (
  19. pcn_type_code CHAR(6),
  20. pcn_type_description Varchar2(30),
  21. PRIMARY KEY (pcn_type_code)
  22. );
  23.  
  24.  
  25. CREATE TABLE Ref_Event_Types
  26. (
  27. event_type_code CHAR(6),
  28. event_type_description Varchar2(30),
  29. PRIMARY KEY (event_type_code)
  30. );
  31.  
  32.  
  33. CREATE TABLE Ref_PCN_Ticket_Status
  34. (
  35. ticket_status_code CHAR(6),
  36. ticket_status_description Varchar2(30),
  37. PRIMARY KEY (ticket_status_code)
  38. );
  39.  
  40.  
  41. CREATE TABLE Addresses
  42. (
  43. address_id CHAR(6),
  44. line_1_number_building CHAR(6),
  45. line_2_number_street CHAR(6),
  46. line_3_number_area_l_s Varchar2(6),
  47. line_4_other CHAR(6),
  48. town_city Varchar2(30),
  49. zip_postcode CHAR(5),
  50. state_province_country Varchar2(30),
  51. country Varchar2(30),
  52. other_address_details Varchar2(30),
  53. PRIMARY KEY (address_id)
  54. );
  55.  
  56.  
  57. CREATE TABLE Officers
  58. (
  59. officer_badge_number CHAR(6),
  60. officer_address_id CHAR(6),
  61. gender Varchar2(10),
  62. date_of_birth DATE,
  63. officer_first_name Varchar2(30),
  64. officer_middle_name Varchar2(30),
  65. officer_last_name Varchar2(30),
  66. officer_other_details Varchar2(30),
  67. PRIMARY KEY (officer_badge_number),
  68. FOREIGN KEY (officer_address_id)
  69. REFERENCES Addresses (address_id)
  70. );
  71.  
  72.  
  73. CREATE TABLE Customers
  74. (
  75. customer_id CHAR(6),
  76. address_id CHAR(6),
  77. first_name Varchar2(30),
  78. middle_name Varchar2(30),
  79. last_name Varchar2(30),
  80. home_phone CHAR(9),
  81. email_address Varchar2(60),
  82. cell_mobile_phone CHAR(9),
  83. other_details Varchar2(30),
  84. PRIMARY KEY (customer_id),
  85. FOREIGN KEY (address_id)
  86. REFERENCES Addresses (address_id)
  87. );
  88.  
  89.  
  90. CREATE TABLE Vehicles
  91. (
  92. vehicle_license_number CHAR(6),
  93. manufacturer_code CHAR(6),
  94. vehicle_type_code CHAR(6),
  95. year_of_manufacture CHAR(4),
  96. vehicle_details Varchar2(30),
  97. model Varchar2(30),
  98. PRIMARY KEY (vehicle_license_number),
  99. FOREIGN KEY (manufacturer_code)
  100. REFERENCES Ref_Vehicle_Manufactures (manufacturer_code),
  101. FOREIGN KEY (vehicle_type_code)
  102. REFERENCES Ref_Vehicle_Types (vehicle_type_code)
  103. );
  104.  
  105.  
  106. CREATE TABLE PCN_Parking_Tickets
  107. (
  108. pcn_ticket_id CHAR(6),
  109. customer_id CHAR(6) UNIQUE,
  110. issued_by_officer_badge_number CHAR(6),
  111. tiket_status_code CHAR(6),
  112. tiket_type_code CHAR(6),
  113. vehicle_licence_number CHAR(6),
  114. date_ticket_issued DATE,
  115. date_ticket_cancelled DATE,
  116. date_ticket_paid DATE,
  117. other_details Varchar2(30),
  118. PRIMARY KEY (pcn_ticket_id),
  119. FOREIGN KEY(customer_id)
  120. REFERENCES Customers (customer_id),
  121. FOREIGN KEY(issued_by_officer_badge_number)
  122. REFERENCES Officers (officer_badge_number),
  123. FOREIGN KEY(tiket_status_code)
  124. REFERENCES Ref_PCN_Ticket_Status (ticket_status_code),
  125. FOREIGN KEY(tiket_type_code)
  126. REFERENCES Ref_PCN_Ticket_Types (pcn_type_code),
  127. FOREIGN KEY(vehicle_licence_number)
  128. REFERENCES Vehicles
  129. );
  130.  
  131.  
  132. CREATE TABLE Events
  133. (
  134. event_id CHAR(6),
  135. event_type_code CHAR(6),
  136. pcn_ticket_id CHAR(6),
  137. date_of_event DATE,
  138. other_details Varchar2(30),
  139. PRIMARY KEY (event_id),
  140. FOREIGN KEY (event_type_code)
  141. REFERENCES Ref_Event_Types (event_type_code),
  142. FOREIGN KEY (pcn_ticket_id)
  143. REFERENCES PCN_Parking_Tickets (pcn_ticket_id)
  144. );

Cualquier ayuda por pequeña que sea me sera muy útil! gracias por vuestro tiempo.

Última edición por gnzsoloyo; 14/05/2015 a las 09:56 Razón: Añadir imagen