Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.65 KB | None | 0 0
  1. --Задача 1
  2. --Да се изведе списък с номерата на поръчките направени на 1-ви октомври 2011 г., както и имената на продуктите в тях.
  3. select soh.SalesOrderNumber as [Order Number] , p.Name as [Product Name]
  4. from Sales.SalesOrderHeader soh join Sales.SalesOrderDetail sod on soh.SalesOrderID = sod.SalesOrderID
  5. join Production.Product p on p.ProductID=sod.ProductID
  6. where soh.OrderDate='2011-10-01'
  7.  
  8.  
  9. --Задача 2
  10. --Да се изведе списък с номерата на поръчките направени на 1-ви октомври 2011 г.,
  11. --както и бройката на поръчаните продукти във всяка от тях.
  12.  
  13. select  soh.SalesOrderNumber as [Order Number]  ,count(p.ProductID) as [Count of products]
  14. from Sales.SalesOrderHeader soh join Sales.SalesOrderDetail sod on soh.SalesOrderID = sod.SalesOrderID
  15. join Production.Product p on p.ProductID=sod.ProductID
  16. where soh.OrderDate='2011-10-01'
  17. group by soh.SalesOrderNumber
  18.  
  19.  
  20. --Задача 3
  21. --Да се изведе списък с номерата на поръчките направени на 1-ви октомври 2011 г., с които са поръчани
  22. --между 3 и 9 на брой продукта, както и бройката на поръчаните продукти във всяка от тях.
  23.  
  24. select  soh.SalesOrderNumber as [Order Number]  ,count(p.ProductID) as [Count of products]
  25. from Sales.SalesOrderHeader soh join Sales.SalesOrderDetail sod on soh.SalesOrderID = sod.SalesOrderID
  26. join Production.Product p on p.ProductID=sod.ProductID
  27. where soh.OrderDate='2011-10-01'
  28. group by soh.SalesOrderNumber
  29. having count(p.ProductID) between 3 and 9
  30.  
  31.  
  32. --Задача 4
  33. --Да се напише заявка, която на база данните в колонката SalesOrderNumber да показва какъв
  34. --би бил номерът на следващата въведена поръчка. Има ли по-подходящ начин за да се изведе същата информация?
  35.  
  36. --N'SO'+CONVERT([nvarchar](23),[SalesOrderID])
  37.  
  38. --Задача 5
  39. --Да се напише заявка, която връща имената на клиентите, направили поръчки преди 30.09.2012 г. и след 30.06.2013 г.
  40.  
  41. select CONCAT_WS(pe.FirstName,' '+pe.MiddleName,' '+pe.LastName) as [Cusstomer Full Name]
  42. from Sales.SalesOrderHeader soh join Sales.Customer c on  soh.CustomerID=c.CustomerID
  43. join Person.Person pe on pe.BusinessEntityID=c.PersonID
  44. where soh.OrderDate not between '2012-09-30' and '2013-06-30'
  45.  
  46. --Задача 6
  47. --Да се изведе списък с номерата и датите на поръчките направени от Aaron Con, техния номер по ред,
  48. --като за всяка от тях се покажат и номера и датата на предходната и следващата му поръчки.
  49.  
  50. select soh.SalesOrderNumber , soh.OrderDate ,
  51.                             soh.rowguid ,
  52.                             lag(soh.SalesOrderNumber,1,NULL) over (order by soh.OrderDate) as [Previous Order Number],
  53.                             lag(soh.OrderDate,1,NULL) over (order by soh.OrderDate) as [Previous Order Date],
  54.                             lead(soh.SalesOrderNumber,1,NULL) over (order by soh.OrderDate) as [Next Order Number],
  55.                             lead(soh.OrderDate,1,NULL) over (order by soh.OrderDate) as [Next Order Date]
  56. from Sales.SalesOrderHeader soh join Sales.Customer c on  soh.CustomerID=c.CustomerID
  57. join Person.Person pe on pe.BusinessEntityID=c.PersonID
  58. where CONCAT(pe.FirstName,' '+pe.LastName)='Aaron Con'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement