Hiba9201

sql_1_hw

Oct 20th, 2021
1,828
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. USE KN302_PELEVINA
  2. GO
  3.  
  4. -- Количество оперделенного товара за определенную дату
  5. DECLARE @tovar VARCHAR(50);
  6. SET @tovar = 'молоко';
  7.  
  8. DECLARE @DATE DATE;
  9. SET @DATE = '2021-12-03';
  10.  
  11. DECLARE @postup INT;
  12.  
  13. SET @postup = (
  14.     SELECT SUM(agr.kol_vo)
  15.     FROM (
  16.          SELECT t.kol_vo kol_vo
  17.          FROM market_practice.tovar t
  18.                   LEFT JOIN market_practice.tip_tovara tt
  19.                             ON t.id_t = tt.id_t
  20.          WHERE tt.t_name = @tovar
  21.            AND t.priznak = 0
  22.            AND t.post_prod <= @DATE
  23.     ) agr
  24. )
  25.  
  26. DECLARE @prod INT;
  27.  
  28. SET @prod = (
  29.     SELECT SUM(agr.kol_vo)
  30.     FROM (
  31.          SELECT t.kol_vo kol_vo
  32.          FROM market_practice.tovar t
  33.                   LEFT JOIN market_practice.tip_tovara tt
  34.                             ON t.id_t = tt.id_t
  35.          WHERE tt.t_name = @tovar
  36.            AND t.priznak = 1
  37.            AND t.post_prod <= @DATE
  38.     ) agr
  39. )
  40.  
  41. DECLARE @RESULT INT;
  42. SET @RESULT = @postup - @prod;
  43.  
  44. print(N'Товаров типа ' + CAST(@tovar AS NVARCHAR(30)) + N': ' + CAST(@RESULT AS nvarchar(30)))
  45.  
  46. SELECT @tovar 'Тип товара', @RESULT 'Количество', format(@DATE, 'dd MMMM yyyy') Дата
  47.  
  48.  
  49. -- Максимальная, минимальная и средняя цена за определенный товар
  50. DECLARE @tovar_2 VARCHAR(50);
  51. SET @tovar_2 = 'молоко';
  52.  
  53. SELECT
  54.        CAST(MAX(t.price) AS DECIMAL(18,2)) "Максимальная цена",
  55.        CAST(MIN(t.price) AS DECIMAL(18,2)) "Минимальная цена",
  56.        CAST(avg(t.price) AS DECIMAL(18,2)) "Средняя цена"
  57. FROM market_practice.tovar t
  58. LEFT JOIN market_practice.tip_tovara tt
  59.     ON t.id_t = tt.id_t
  60. WHERE tt.t_name = @tovar_2
  61. GO
  62.  
  63.  
  64.  -- Количество товаров в определенном магазине
  65. DECLARE @market VARCHAR(20)
  66. SET @market = 'Жизньмарт'
  67.  
  68. DECLARE @postup INT;
  69. SET @postup = (
  70.     SELECT SUM(agr.kol_vo)
  71.     FROM (
  72.          SELECT t.kol_vo kol_vo
  73.          FROM market_practice.tovar t
  74.          LEFT JOIN market_practice.market m
  75.             ON t.id_m = m.id_m
  76.          WHERE m.m_name = @market
  77.            AND t.priznak = 0
  78.     ) agr
  79. )
  80.  
  81. DECLARE @prod INT;
  82.  
  83. SET @prod = (
  84.     SELECT SUM(agr.kol_vo)
  85.     FROM (
  86.          SELECT t.kol_vo kol_vo
  87.          FROM market_practice.tovar t
  88.          LEFT JOIN market_practice.market m
  89.             ON t.id_m = m.id_m
  90.          WHERE m.m_name = @market
  91.            AND t.priznak = 1
  92.     ) agr
  93. )
  94.  
  95. DECLARE @RESULT INT;
  96. SET @RESULT = @postup - @prod;
  97.  
  98. print(N'Товаров в ' + CAST(@market AS nvarchar(20)) + N': ' + CAST(@RESULT AS nvarchar(20)))
  99.  
  100. SELECT @market 'Магазин', @RESULT 'Количество'
RAW Paste Data