Advertisement
Guest User

Untitled

a guest
Aug 9th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.70 KB | None | 0 0
  1. DECLARE @subjectStr VARCHAR(16) = 'Arenda'
  2.     , @table NVARCHAR(MAX) = ''
  3.     , @tableHTML NVARCHAR(MAX)
  4. ;
  5.  
  6.  
  7. WITH
  8.     cte(Name, Phone, Description, ObjectDescription, SummaOwedTotal) AS (
  9.         SELECT MAX(c.Name)
  10.             , MAX(c.Phone)
  11.             , MIN(dt.Description)
  12.             , MIN(o.ObjectDescription)
  13.             , SUM(a.SummaSaldoBegin)
  14.               + (MAX(p.PlanUtilityPayment) + SUM(SummaReceipt)) AS 'SummaOwedTotal'
  15.         FROM mart.ArendaSAPBalance a
  16.             LEFT JOIN sap.Customer c
  17.                 ON a.CustomerID = c.CustomerID
  18.             INNER JOIN dim.Object o
  19.                 ON o.ObjectID = a.ObjectID
  20.             INNER JOIN dim.DebtType dt
  21.                 ON dt.DebtTypeID = a.DebtTypeID
  22.             INNER JOIN dbo.v_Month m
  23.                 ON a.MonthID = m.MonthID
  24.             LEFT JOIN dwh.xls.ArendaObjectPlan p
  25.                 ON p.ObjectID = a.ObjectID
  26.                     AND p.ContractArendaTypeID = a.ContractArendaTypeID
  27.                     AND p.CustomerID = a.CustomerID
  28.                     AND p.MonthID = a.MonthID
  29.                     AND p.ContractArendaTypeID = 1
  30.                     OR (
  31.                         p.ObjectID = a.ObjectID
  32.                            AND p.ContractArendaTypeID = a.ContractArendaTypeID
  33.                            AND p.MonthID = a.MonthID
  34.                            AND p.ContractArendaTypeID = 4
  35.                     )
  36.         WHERE --ContractHeadEndDate > '2018-05-01'
  37.             a.ContractArendaTypeID IN ( 1, 4 )
  38.             AND a.DebtTypeID IN ( 4, 11 )
  39.             AND m.Month = FORMAT(GETDATE(), 'yyyyMM')
  40.             AND p.PlanUtilityPayment > 0
  41.             AND a.SummaSaldoBegin + (p.PlanUtilityPayment + SummaReceipt) > 0
  42.         GROUP BY c.CustomerID
  43.  
  44.         UNION SELECT c.Name
  45.             , c.Phone
  46.             , dt.Description
  47.             , o.ObjectDescription
  48.             , a.SummaSaldoBegin + (p.ArendaPaySum + SummaReceipt) AS 'SummaOwedTotal'
  49.         FROM mart.ArendaSAPBalance a
  50.             LEFT JOIN sap.Customer c
  51.                 ON a.CustomerID = c.CustomerID
  52.             INNER JOIN dim.Object o
  53.                 ON o.ObjectID = a.ObjectID
  54.             INNER JOIN dim.DebtType dt
  55.                 ON dt.DebtTypeID = a.DebtTypeID
  56.             INNER JOIN dim.ContractArendaType cat
  57.                 ON cat.ContractArendaTypeID = a.ContractArendaTypeID
  58.             INNER JOIN dbo.v_Month m
  59.                 ON a.MonthID = m.MonthID
  60.             LEFT JOIN dwh.xls.ArendaObjectPlan p
  61.                 ON p.ObjectID = a.ObjectID
  62.                     AND p.ContractArendaTypeID = a.ContractArendaTypeID
  63.                     AND p.CustomerID = a.CustomerID
  64.                     AND p.MonthID = a.MonthID
  65.                     AND p.ContractArendaTypeID = 1
  66.                     OR (
  67.                         p.ObjectID = a.ObjectID
  68.                            AND p.ContractArendaTypeID = a.ContractArendaTypeID
  69.                            AND p.MonthID = a.MonthID
  70.                            AND p.ContractArendaTypeID = 4
  71.                     )
  72.         WHERE ContractHeadEndDate > GETDATE()
  73.             AND a.ContractArendaTypeID IN ( 1, 4 )
  74.             AND a.DebtTypeID IN ( 2 )
  75.             AND m.Month = FORMAT(GETDATE(), 'yyyyMM')
  76.             AND a.SummaSaldoBegin + (p.ArendaPaySum + SummaReceipt) > 0
  77.     )
  78. SELECT @table = @table + '<tr>'
  79.     + '<td>' + Name + '</td>'
  80.     + '<td>' + Phone + '</td>'
  81.     + '<td>' + Description + '</td>'
  82.     + '<td>' + ObjectDescription + '</td>'
  83.     + '<td>' + CONVERT(VARCHAR(64), SummaOwedTotal) + '</td>'
  84. FROM cte;
  85.  
  86. SET @tableHTML = N'
  87. <h3>
  88.     <font color="black"> Добрый день! В приложении список арендаторов-должников, которым будут отправлены СМС уведомления. Просим подтвердить корректность данных в выгрузке, в противном случае СМС отправлены не будут! </h3>'
  89. +N' <table border="1" align="center" cellpadding="2" cellspacing="0" style="text-align:center;">'
  90. +N'     <tr style="font-size:12px;">
  91.             <th>Name</th>
  92.             <th>Phone</th>
  93.             <th>Description</th>
  94.             <th>ObjectDescription</th>
  95.             <th>SummaOwedTotal</th>
  96.         </tr>' + @table
  97. +N' </table>'
  98.  
  99. EXEC msdb.dbo.sp_send_dbmail
  100.     @profile_name = 'DWH1',
  101.     @recipients = 'bogdanova.maria@zoloto585.ru; kim.lestat@zoloto585.ru',--'; dvoryanov.dmitry@zoloto585.ru',
  102.     @subject = @subjectStr,
  103.     @body = @tableHTML,
  104.     @body_format = 'HTML'
  105. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement