Guest User

Untitled

a guest
Feb 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.22 KB | None | 0 0
  1. /*
  2. a)
  3. A. Tomando en cuenta la tabla ventas (sales) y la tabla títulos (titles) obtener los siguientes atributos:
  4. 1. El id de la tienda (IDTienda)
  5. 2. El número de compra (IDCompra)
  6. 3. La fecha en la que se realizó la compra (FechaCompra)
  7. 4. La cantidad de libros comprados (Cantidad)
  8. 5. El id del título del libro (IDLibro)
  9. 6. El título del libro (TituloLibro)
  10. 7. El precio unitario (PrecioUnitario)
  11. 8. La cantidad que se pagó por la compra "precio unitario * cantidad" (TotalCompra).
  12. Ordenado por título
  13. TIP: Utilice JOIN.
  14. Resultados aproximados: 21 filas
  15. Ponga los encabezados indicados entre paréntesis.
  16.  
  17. */
  18. SELECT s.stor_id,
  19. s.ord_num,
  20. s.ord_date,
  21. s.qty,
  22. t.title_id,
  23. t.title,
  24. t.price,
  25. t.price*s.qty
  26. FROM dbo.sales S
  27. INNER JOIN dbo.titles T
  28. ON s.title_id = t.title_id
  29. ORDER BY t.title DESC
  30. /*
  31. b) B. Modifique la consulta anterior para obtener la información de la venta que se registró como mínima.
  32. Resultados aproximados: 1 fila.
  33.  
  34. */
  35. SELECT s.stor_id,
  36. s.ord_num,
  37. s.ord_date,
  38. s.qty,
  39. t.title_id,
  40. t.title,
  41. t.price,
  42. t.price*s.qty
  43. FROM dbo.sales S
  44. INNER JOIN dbo.titles T
  45. ON s.title_id = t.title_id
  46. WHERE t.price*s.qty =
  47. ( SELECT MIN(t2.price*s2.qty)
  48. FROM dbo.sales s2
  49. INNER JOIN dbo.titles t2
  50. ON s2.title_id = t2.title_id
  51. )
  52. ORDER BY t.title
  53. /*
  54. C) Modifique la consulta anterior para obtener la información de la venta que se registró como máxima y haga una UNION con la consulta B.
  55. Resultados aproximados: 2 filas
  56. */
  57. SELECT s.stor_id,
  58. s.ord_num,
  59. s.ord_date,
  60. s.qty,
  61. t.title_id,
  62. t.title,
  63. t.price,
  64. t.price*s.qty
  65. FROM dbo.sales S
  66. INNER JOIN dbo.titles T
  67. ON s.title_id = t.title_id
  68. WHERE t.price*s.qty =
  69. ( SELECT MIN(t2.price*s2.qty)
  70. FROM dbo.sales s2
  71. INNER JOIN dbo.titles t2
  72. ON s2.title_id = t2.title_id
  73. )
  74. UNION
  75. SELECT s.stor_id,
  76. s.ord_num,
  77. s.ord_date,
  78. s.qty,
  79. t.title_id,
  80. t.title,
  81. t.price,
  82. t.price*s.qty
  83. FROM dbo.sales S
  84. INNER JOIN dbo.titles T
  85. ON s.title_id = t.title_id
  86. WHERE t.price*s.qty =
  87. ( SELECT MAX(t2.price*s2.qty)
  88. FROM dbo.sales s2
  89. INNER JOIN dbo.titles t2
  90. ON s2.title_id = t2.title_id
  91. )
  92. ORDER BY t.title
  93. /*
  94. D) Tomando como referencia las tablas títulos (titles) y ventas (sales) muestre aquellos títulos que NO tienen registrada venta alguna.
  95. Tip: Puedes usar la cláusula EXISTS.
  96. Resultados aproximados: 2 filas
  97. */
  98. SELECT *
  99. FROM dbo.titles t
  100. WHERE NOT EXISTS (
  101. SELECT *
  102. FROM dbo.sales S
  103. WHERE s.title_id = t.title_id
  104. )
  105. /*
  106. E) Modifique esta consulta para que por título nos muestre la suma de cantidades vendidas así como la suma de importes como se muestra a continuación
  107. Tip: Deberás usar las cláusulas GROUP BY.
  108. Resultados aproximados: 16 filas
  109.  
  110. */
  111. SELECT T.Title,
  112. SUM(SA.qty),
  113. SUM(SA.qty * T.price)
  114. FROM sales SA
  115. INNER JOIN Stores ST
  116. ON SA.stor_id = ST.stor_id
  117. INNER JOIN titles T
  118. ON SA.title_id = T.title_id
  119. GROUP BY T.Title
  120.  
  121. /*
  122. F. Tomando como base la tabla titleauthor haga una consulta que utilice
  123. subconsultas a las tablas authors y titles en SELECT para obtener el
  124. nombre del autor y el nombre del título como se muestra a continuación:
  125. TIP: Harás dos subconsultas.
  126. Resultados aproximados: 25 filas.
  127. */
  128. SELECT t.au_id,
  129. (
  130. SELECT a.au_fname+''+a.au_lname
  131. FROM dbo.authors a
  132. WHERE a.au_id = t.au_id
  133. ),
  134. (
  135. SELECT t2.title
  136. FROM dbo.titles t2
  137. WHERE t2.title_id = t.title_id
  138. )
  139. FROM dbo.titleauthor t
  140.  
  141. /*
  142. G) Crear una consulta que tomará como base la tabla employees y jobs para
  143. obtener la información de los empleados y su puesto de trabajo.
  144. La consulta deberá arrojar lo siguiente:
  145. 1. El identificador del empleado (EmpleadoID)
  146. 2. El nombre del empleado (EmpleadoNombre)
  147. 3. La fecha en la que se contrató al empleado (EmpleadoFechaContratacion)
  148. 4. La antigüedad de ese empleado (EmpleadoAntiguedad)
  149. 5. El puesto de ese empleado (EmpleadoPuesto)
  150. TIP: Para el punto 4 usarás la función DATEDIFF para obtener la diferencia entre dos fechas y GETDATE() para obtener la fecha actual.
  151. Ponga los encabezados indicados entre paréntesis.
  152. Resultados aproximados: 43 filas
  153. */
  154. SELECT e.emp_id,
  155. e.fname+''+e.lname,
  156. e.hire_date,
  157. DATEDIFF(YEAR, e.hire_date,GETDATE()),
  158. j.job_desc
  159. FROM dbo.employee e
  160. INNER JOIN dbo.jobs j
  161. ON e.job_id = j.job_id
Add Comment
Please, Sign In to add comment