Advertisement
Guest User

Aarhus bryghus daos

a guest
Apr 19th, 2017
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1.  
  2. drop table klippekort
  3. drop table ordrelinje
  4. drop table prisfraliste
  5. drop table prisliste
  6. drop table vare
  7. drop table bestilling
  8. drop table udlejningsprodukt
  9. drop table kunde
  10. drop table rabat
  11.  
  12. create table rabat(
  13. rabatID int primary key NOT NULL,
  14. pris int
  15. )
  16.  
  17. Create table kunde(
  18. kundeID int primary key NOT NULL,
  19. navn varchar(30),
  20. adresse varchar(30),
  21. telefonnr int,
  22. email varchar(30),
  23. rabatID int foreign key references rabat(rabatID)
  24. )
  25.  
  26. create table klippekort(
  27. klippekortID int primary key NOT NULL,
  28. antalklip int,
  29. pris int,
  30. kundeID int foreign key references kunde(KundeID)
  31. )
  32.  
  33. create table bestilling(
  34. bestillingID int primary key NOT NULL,
  35. købsdato date default getdate(),
  36. betalingstype varchar(30),
  37. kundeID int foreign key references kunde(KundeID)
  38. )
  39.  
  40. create table udlejningsprodukt(
  41. udlejningsproduktID int primary key NOT NULL,
  42. udltype varchar(30),
  43. navn varchar(30),
  44. pris int,
  45. udlejet date default getdate(),
  46. tilbagelevering date,
  47. ledig bit default 1 -- Når den er 1 = ledig
  48. )
  49.  
  50. create table vare(
  51. vareID int primary key NOT NULL,
  52. varetype varchar(30),
  53. udløbsdato date CHECK (udløbsdato >= getDATE() ),
  54. volume int,
  55. navn varchar(30)
  56. )
  57.  
  58. create table prisliste(
  59. prislisteID int primary key NOT NULL,
  60. navn varchar(30)
  61. )
  62.  
  63. create table prisfraliste(
  64. prisfralisteID int primary key NOT NULL,
  65. pris int,
  66. vareID int foreign key references vare(vareID) NOT NULL,
  67. prislisteID int foreign key references prisliste(prislisteID) NOT NULL
  68. )
  69.  
  70. create table ordrelinje(
  71. ordrelinjeID int primary key NOT NULL,
  72. antal int,
  73. bestillingID int foreign key references bestilling(bestillingID),
  74. udlejningsproduktID int foreign key references udlejningsprodukt(udlejningsproduktID),
  75. prisfralisteID int foreign key references prisfraliste(prisfralisteID),
  76. )
  77.  
  78. --KundeID, navn , adresse, telefonnr, email, rabatID
  79. insert into kunde values
  80. (1, 'Daniel', '8900 Randersvej 100', 20202020, 'daniel@gmail.com', null),
  81. (2, 'Simon', '8210 Gellerupvej 200', 20204020, 'simon@gmail.com', null),
  82. (3, 'Dennis', '8230 Silkeborgvej 300', 20205020, 'dennis@gmail.com', null)
  83.  
  84. -- vareID, varetype, udløbsdato, volume, navn
  85. insert into vare values
  86. (1, 'flasker', '2017-06-06', 75, 'Klosterbryg'), -- fredagsbar 50 kr
  87. (2, 'flasker', '2017-06-06', 75, 'Sweet Georgia Brown'), -- fredagsbar 50 kr.
  88. (3, 'flasker', '2017-06-06', 75, 'Extra Pilsner'), -- butik 36 kr.
  89. (4, 'flasker', '2017-06-06', 75, 'Celebration') -- butik 36 kr.
  90.  
  91. --prislisteID, navn
  92. insert into prisliste values
  93. (1, 'fredagsbar'),
  94. (2, 'butik')
  95.  
  96. --prisfralisteID, pris, fremmedenøgle(vareID), fremmedenøgle(prislisteID)
  97. insert into prisfraliste values
  98. (1, 50, 1, 1 ),
  99. (2, 50, 2,1),
  100. (3, 36, 3,2),
  101. (4, 36,4,2)
  102.  
  103. -- bestillingID, købsdato, betalingstype, fremmedenøgle(kundeID)
  104. insert into bestilling values
  105. (1, '2017-06-06', 'Dankort', 1),
  106. (2, '2017-06-06', 'Mobilpay', 2),
  107. (3, '2017-06-06', 'Kontant', 3)
  108.  
  109. -- ordrelinjeID, antal, fremmedenøgle(bestillingID), fremmedenøgle(udlejningsproduktID), fremmedenøgle(prisfralisteID)
  110. insert into ordrelinje values
  111. (1, 1, 1, null, 1), -- (ordrelinjeID, antal, bestillingID, udlejningsproduktID, prisfralisteID)
  112. (2,1,2,null,2),
  113. (3,1,3,null,3)
  114.  
  115. drop proc vare_navn
  116.  
  117. -- Opgave 2A
  118. create proc vare_navn
  119. @vareID int,
  120. @vareType varchar(30),
  121. @udløbsdato date,
  122. @volume int,
  123. @navn varchar(30),
  124. @pris int,
  125. @prislistenavn varchar(30)
  126. as
  127. Declare @prisfralisteID int
  128. Declare @prislisteID int
  129. Declare @tempID4PrisListe int -- TEMP BRUGES KUN VED NY PRISLISTE
  130. Select @prislisteID = prisliste.prislisteID
  131. from prisliste
  132. if exists (select (prisliste.navn) from prisliste where prisliste.navn = @prislistenavn)
  133. begin
  134. set @prisfralisteID = (select MAX(prisfraliste.prisfralisteID)+1 from prisfraliste)
  135. insert into vare values
  136. (@vareID, @vareType, @udløbsdato, @volume, @navn)
  137. insert into prisfraliste values
  138. (@prisfralisteID, @pris, @vareID, @prislisteID)
  139. END
  140. else
  141. begin
  142. set @prisfralisteID = (select MAX(prisfraliste.prisfralisteID)+1 from prisfraliste)
  143. set @tempID4PrisListe = (select MAX(prisliste.prislisteID)+1 from prisliste)
  144. insert into prisliste values
  145. (@tempID4PrisListe, @prislistenavn)
  146. insert into vare values
  147. (@vareID, @vareType, @udløbsdato, @volume, @navn)
  148. insert into prisfraliste values
  149. (@prisfralisteID, @pris, @vareID, @prislisteID)
  150. END
  151.  
  152.  
  153. exec vare_navn @vareID = 14, @vareType = 'flasker', @udløbsdato = '2017-06-06', @volume = 10,
  154. @navn = 'blondie', @pris = 100, @prislistenavn = 'butik'
  155.  
  156. -- start på test til Opgave 2A
  157. Select prisfraliste.prislisteID
  158. from prisfraliste, prisliste
  159. where prisfraliste.prislisteID = prisliste.prislisteID
  160.  
  161. Select *
  162. from vare
  163.  
  164. select prisfraliste.vareID
  165. from prisfraliste, vare
  166. where prisfraliste.vareID = vare.vareID
  167.  
  168. Select *
  169. from prisliste
  170. -- Slut på test til opgave 2A
  171.  
  172.  
  173. -- opgave 2B
  174. create procedure opg2
  175. @dato date
  176. as
  177. select prisfraliste.pris
  178. from prisfraliste
  179. full join ordrelinje
  180. on prisfraliste.prisfralisteID = ordrelinje.prisfralisteID
  181. full join bestilling
  182. on ordrelinje.bestillingID = bestilling.bestillingID
  183. where bestilling.købsdato = @dato
  184.  
  185. exec opg2 @dato = '2017-06-06'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement