Advertisement
hoscanoa

LC4

Mar 13th, 2014
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.12 KB | None | 0 0
  1. use master
  2. go
  3. create database VentasMartes
  4. go
  5. use VentasMartes
  6. go
  7. create table Cliente
  8. (cod_c char(3) not null primary key,
  9. nombre varchar(20))
  10. go
  11. create table Vendedor
  12. (cod_v char(3) not null primary key,
  13. nombre varchar(20), comision money)
  14. go
  15. create table Factura
  16. (cod_f char(3) not null primary key,
  17. fecha date,  
  18. cod_c char(3) not null foreign key references Cliente,
  19. cod_v char(3) not null foreign key references Vendedor)
  20. go
  21. create table Proveedor
  22. (cod_prov char(3) not null primary key,
  23. nombre varchar(20),distrito char(3))
  24. go
  25. create table Producto
  26. (cod_p char(4) not null primary key,
  27. nombre varchar(20), precioUnitario money,stock int,
  28. cod_prov char(3) not null foreign key references Proveedor)
  29. go
  30. create table Detalle_Factura
  31. (cod_f char(3) not null foreign key references Factura,
  32. cod_p char(4) not null foreign key references Producto,
  33. cantidad int, importe money)
  34. go
  35. alter table Detalle_Factura
  36. add
  37. constraint pk_detalle_factura
  38. primary key (cod_p,cod_f)
  39. go
  40. insert cliente values ('c01','Pedro')
  41. insert cliente values ('c02','Juan')
  42. insert cliente values ('c03','Artemio')
  43. insert cliente values ('c04','María')
  44. go
  45. insert vendedor values ('v01','Susana',120)
  46. insert vendedor values ('v02','Enrique',250)
  47. insert vendedor values ('v03','Ana Cristina',1780)
  48. go
  49.  
  50. SET DATEFORMAT dmy;
  51. go;
  52.  
  53. insert factura values ('f01','15/02/05','c01','v02')
  54. insert factura values ('f02','18/02/05','c02','v03')
  55. insert factura values ('f03','20/02/05','c01','v03')
  56. insert factura values ('f04','23/02/05','c01','v02')
  57. insert factura values ('f05','11/03/05','c03','v01')
  58. insert factura values ('f06','13/03/05','c04','v01')
  59. insert factura values ('f07','17/03/05','c03','v02')
  60. insert factura values ('f08','19/03/05','c04','v01')
  61. insert factura values ('f09','21/03/05','c02','v03')
  62. go
  63. insert proveedor values ('p01','Alicorp','smp')
  64. insert proveedor values ('p02','Nicolini','smp')
  65. insert proveedor values ('p03','Litos','cal')
  66. insert proveedor values ('p04','Gloria','ves')
  67. insert proveedor values ('p05','Nestle','cal')
  68. go
  69. insert producto values ('pr01','Leche',2.5,68,'p01')
  70. insert producto values ('pr02','Papel',1.5,100,'p01')
  71. insert producto values ('pr03','Azúcar',2.8,154,'p02')
  72. insert producto values ('pr04','Arroz',2.8,120,'p02')
  73. insert producto values ('pr05','Lapicero',1.8,89,'p03')
  74. insert producto values ('pr06','Carbón',4.5,150,'p05')
  75. insert producto values ('pr07','Lápiz',1.5,100,'p04')
  76. insert producto values ('pr08','Aceite',8.5,100,'p01')
  77. go
  78. insert Detalle_Factura values ('f01','pr01',5,10)
  79. insert Detalle_Factura values ('f01','pr02',5,10)
  80. insert Detalle_Factura values ('f02','pr01',5,10)
  81. insert Detalle_Factura values ('f02','pr04',5,10)
  82. insert Detalle_Factura values ('f03','pr01',5,10)
  83. insert Detalle_Factura values ('f04','pr05',5,10)
  84. insert Detalle_Factura values ('f04','pr06',5,10)
  85. insert Detalle_Factura values ('f05','pr02',5,10)
  86. insert Detalle_Factura values ('f06','pr04',5,10)
  87. insert Detalle_Factura values ('f06','pr06',5,10)
  88. insert Detalle_Factura values ('f06','pr07',5,10)
  89. insert Detalle_Factura values ('f07','pr01',5,10)
  90. insert Detalle_Factura values ('f07','pr02',5,10)
  91. insert Detalle_Factura values ('f08','pr05',5,10)
  92. insert Detalle_Factura values ('f09','pr01',5,10)
  93. insert Detalle_Factura values ('f09','pr03',5,10)
  94. insert Detalle_Factura values ('f09','pr04',5,10)
  95. go
  96. /*EVALUACIÓN CONTINUA*/
  97. /*=====================*/
  98.  
  99. /*
  100. 1.  Crear una vista que  muestre código de factura, fecha, sumatoria
  101. total vendida (sumar pre_articulo * cantidad)  de artículos que se
  102. vendieron. Finalmente mediante una consulta a la vista deberá mostrar
  103. solamente las boletas que se encuentren entre ENERO - MARZO
  104. del 2005 y que el nombre del producto empiece con vocal (05 PUNTOS).
  105. */
  106.  
  107.  
  108.  
  109. create proc Problema1
  110.     @anhio int,
  111.     @mesI int,
  112.      @mesF int
  113. as
  114.     select f.cod_f, f.fecha, sum(df.cantidad*df.importe) 'Total'
  115.     from Factura f inner join Detalle_Factura df
  116.     on
  117.     f.cod_f=df.cod_f
  118.     inner join Producto p
  119.     on
  120.     p.cod_p=df.cod_p
  121.     where Year(fecha)=@anhio and month(fecha) between @mesI and @mesF and p.nombre like '[a,e,i,o,u]%'
  122.     group by f.cod_f, f.fecha
  123. go
  124.  
  125. exec Problema1 2005, 1, 3
  126.  
  127. /*
  128. 2.  Crear un procedimiento almacenado que muestre los productos cuyo
  129. precio sea menor al precio del producto de un determinado código
  130. ingresado como parámetro.    (05 PUNTOS).
  131. */
  132. create proc Problema2
  133.     @cod_p char(4)
  134. as
  135.     select * from Producto
  136.     where precioUnitario<(select precioUnitario from Producto where cod_p=@cod_p)
  137. go
  138.  
  139. exec Problema2 'pr06'
  140.  
  141. /*
  142. 3.  Crear un procedimiento almacenado que muestre el código de factura,
  143. nombre de los productos que se vendieron con esa factura. Considere solo
  144. las facturas correspondientes a un determinado año y mes,
  145. estos deben ser ingresados como parámetros.
  146. Además, solo deben considerarse aquellas facturas donde el
  147. precio unitario del producto sea mayor al precio unitario promedio (10 PUNTOS).
  148. */
  149. create proc Problema3
  150. @anhio int,
  151. @mes int
  152. as
  153. select f.cod_f, p.nombre  from Factura f inner join Detalle_Factura df
  154. on f.cod_f=df.cod_f inner join Producto p
  155. on df.cod_p=p.cod_p
  156. where Year(fecha)=@anhio and month(fecha)=@mes
  157. group by f.cod_f, p.nombre, p.precioUnitario
  158. having
  159. p.precioUnitario>(select avg(precioUnitario) from Producto)
  160. go
  161.  
  162. exec Problema3 2005,3
  163. go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement