yambroskin

Запрос чернакову

Aug 22nd, 2017
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 17.51 KB | None | 0 0
  1.  
  2. SELECT
  3. rbg.Name as [Гарантия],
  4. rbg.Id as [Уникальный номер Элма],
  5. applicant.OGRNIP as [ОГРН фирмы],
  6. applicant.INN as [ИНН фирмы],
  7. rbg.CreationDate as [Дата получения заявки],
  8. applicant.RegistrationDate as [Дата регистрации фирмы],
  9. addressOfTheManagement.RegionCode as [Регион клиента],
  10. contractSubType.Name as [Подтип контракта],
  11. customer.Name as [Наименование бенефициара],
  12. customer.OGRN as [ОГРН бенефициара],
  13. customer.INN as [ИНН бенефиуиара],
  14. (CASE WHEN clearSpendingContract.regionCode IS NOT NULL
  15.         THEN clearSpendingContract.regionCode
  16.         ELSE customerLegalAddress.RegionCode END)  as [Регион исполнения контракта],
  17. rbg.ContractSum as [Сумма контракта],
  18. rbg.CountOfWorkedDays as [Срок гарантии],
  19. taxForm.Name as [Система налогообложения принципала],
  20. [HeaderColumnActual].Date as [Актуальная отчётная дата],
  21. [HeaderColumnYear].Date as [Отчетный год]
  22. ,(SELECT TOP 1 frc.Value
  23.     FROM FinReportingColumn as frc
  24.     left join FinReportingRow frr on frr.Id = frc.[Row]
  25.     left join MetricName mn on mn.Id = frr.Metric
  26.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  27.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  28.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  29.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  30.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  31.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  32.     WHERE [rbg_rgp].Parent = rbg.Id
  33.     AND mn.Number='1600'
  34.     AND frhc.Date = [HeaderColumnActual].Date ) as [Активы на актуальную отчётную дату (тыс. руб.)]
  35. ,(SELECT TOP 1 frc.Value
  36.     FROM FinReportingColumn as frc
  37.     left join FinReportingRow frr on frr.Id = frc.[Row]
  38.     left join MetricName mn on mn.Id = frr.Metric
  39.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  40.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  41.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  42.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  43.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  44.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  45.     WHERE [rbg_rgp].Parent = rbg.Id
  46.     AND mn.Number='1200'
  47.     AND frhc.Date = [HeaderColumnActual].Date ) as [Оборотные активы на актуальную отчётную дату (тыс. руб.)]
  48. ,(SELECT TOP 1 frc.Value
  49.     FROM FinReportingColumn as frc
  50.     left join FinReportingRow frr on frr.Id = frc.[Row]
  51.     left join MetricName mn on mn.Id = frr.Metric
  52.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  53.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  54.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  55.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  56.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  57.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  58.     WHERE [rbg_rgp].Parent = rbg.Id
  59.     AND mn.Number='1100'
  60.     AND frhc.Date = [HeaderColumnActual].Date ) as [Внеборотные активы на актуальную отчётную дату (тыс. руб.)]
  61. ,(SELECT TOP 1 frc.Value
  62.     FROM FinReportingColumn as frc
  63.     left join FinReportingRow frr on frr.Id = frc.[Row]
  64.     left join MetricName mn on mn.Id = frr.Metric
  65.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  66.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  67.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  68.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  69.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  70.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  71.     WHERE [rbg_rgp].Parent = rbg.Id
  72.     AND mn.Number='1300'
  73.     AND frhc.Date = [HeaderColumnActual].Date ) as [Капитал и резервы на актуальную отчётную дату (тыс. руб.)]
  74. ,(SELECT TOP 1 frc.Value
  75.     FROM FinReportingColumn as frc
  76.     left join FinReportingRow frr on frr.Id = frc.[Row]
  77.     left join MetricName mn on mn.Id = frr.Metric
  78.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  79.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  80.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  81.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  82.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  83.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  84.     WHERE [rbg_rgp].Parent = rbg.Id
  85.     AND mn.Number='1300'
  86.     AND frhc.Date = [HeaderColumnActual].Date ) as [Капитал и резервы на актуальную отчётную дату (тыс. руб.)]
  87. ,(SELECT TOP 1 frc.Value
  88.     FROM FinReportingColumn as frc
  89.     left join FinReportingRow frr on frr.Id = frc.[Row]
  90.     left join MetricName mn on mn.Id = frr.Metric
  91.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  92.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  93.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  94.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  95.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  96.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  97.     WHERE [rbg_rgp].Parent = rbg.Id
  98.     AND mn.Number='1500'
  99.     AND frhc.Date = [HeaderColumnActual].Date ) as [Краткосрочные обязательства на актуальную отчётную дату (тыс. руб.)]
  100. ,(SELECT TOP 1 frc.Value
  101.     FROM FinReportingColumn as frc
  102.     left join FinReportingRow frr on frr.Id = frc.[Row]
  103.     left join MetricName mn on mn.Id = frr.Metric
  104.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  105.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  106.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  107.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  108.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  109.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  110.     WHERE [rbg_rgp].Parent = rbg.Id
  111.     AND mn.Number='1400'
  112.     AND frhc.Date = [HeaderColumnActual].Date ) as [Долгосрочные обязательства на актуальную отчётную дату (тыс. руб.)]
  113. ,(SELECT  TOP 1 frc.Value
  114.     FROM FinReportingColumn as frc
  115.     left join FinReportingRow frr on frr.Id = frc.[Row]
  116.     left join MetricName mn on mn.Id = frr.Metric
  117.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  118.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  119.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  120.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  121.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  122.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  123.     WHERE [rbg_rgp].Parent = rbg.Id
  124.     AND mn.Number='2400'
  125.     AND frhc.Date = [HeaderColumnActual].Date ) as [Прибыль на актуальную отчётную дату (тыс. руб.)]
  126.  
  127. -- здесь должна быть Прибыль на актуальную отчётную дату - 12 мес (тыс. руб.)
  128.  
  129. ,(SELECT TOP 1 frc.Value
  130.     FROM FinReportingColumn as frc
  131.     left join FinReportingRow frr on frr.Id = frc.[Row]
  132.     left join MetricName mn on mn.Id = frr.Metric
  133.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  134.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  135.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  136.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  137.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  138.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  139.     WHERE [rbg_rgp].Parent = rbg.Id
  140.     AND mn.Number='2400'
  141.     AND frhc.Date = [HeaderColumnYear].Date ) as [Прибыль на конец последнего полного года (тыс. руб.)]
  142. ,(SELECT TOP 1 frc.Value
  143.     FROM FinReportingColumn as frc
  144.     left join FinReportingRow frr on frr.Id = frc.[Row]
  145.     left join MetricName mn on mn.Id = frr.Metric
  146.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  147.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  148.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  149.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  150.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  151.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  152.     WHERE [rbg_rgp].Parent = rbg.Id
  153.     AND mn.Number='2110'
  154.     AND frhc.Date = [HeaderColumnActual].Date ) as [Выручка на актуальную отчётную дату (тыс. руб.)]
  155.  
  156. -- Выручка на актуальную отчётную дату "минус" 12 мес. (тыc. руб.)
  157.  
  158. ,(SELECT TOP 1 frc.Value
  159.     FROM FinReportingColumn as frc
  160.     left join FinReportingRow frr on frr.Id = frc.[Row]
  161.     left join MetricName mn on mn.Id = frr.Metric
  162.     left join FinReportingHeaderColumn frhc on frhc.Id = frc.Header
  163.     left join ReportingGroup rg1 on rg1.Id = frr.[Group]
  164.     left join ReportingGroup rg2 on rg2.Id = rg1.ParentGroup
  165.     left join ReportingGroup rg3 on rg3.Id = rg2.ParentGroup
  166.     left join RequestGuaranteePage rgp on rgp.MainGroup = rg3.Id OR rgp.MainGroup = rg2.Id OR rgp.MainGroup = rg1.Id
  167.     left join M_RBG_ReportingAndMetrics as [rbg_rgp] on [rbg_rgp].Child = rgp.Id
  168.     WHERE [rbg_rgp].Parent = rbg.Id
  169.     AND mn.Number='2110'
  170.     AND frhc.Date = [HeaderColumnYear].Date ) as [Выручка на конец последнего полного года (тыс. руб.)]
  171. ,(SELECT TOP 1 BuhRow.EndValue
  172.     FROM BuhRow
  173.     left join M_BuhForm_Form1 buhFrom_form1 on buhFrom_form1.Child = BuhRow.Id
  174.     left join M_BuhForm_Form2 buhFrom_form2 on buhFrom_form2.Child = BuhRow.Id
  175.     left join BuhForm on BuhForm.Id = buhFrom_form1.Parent OR BuhForm.Id = buhFrom_form2.Parent
  176.     left join M_BuhForms_Buh appl_buhForms on appl_buhForms.Child = BuhForm.Id
  177.     WHERE appl_buhForms.Parent = rbg.Applicant
  178.     AND BuhRow.Code = 2110
  179.     AND BuhForm.Year = (YEAR([HeaderColumnYear].Date)-1)) as [Выручка на конец последнего полного года "минус" 12 мес. (тыс. руб.)]
  180. ,(SELECT TOP 1 BuhRow.StartValue
  181.     FROM BuhRow
  182.     left join M_BuhForm_Form1 buhFrom_form1 on buhFrom_form1.Child = BuhRow.Id
  183.     left join M_BuhForm_Form2 buhFrom_form2 on buhFrom_form2.Child = BuhRow.Id
  184.     left join BuhForm on BuhForm.Id = buhFrom_form1.Parent OR BuhForm.Id = buhFrom_form2.Parent
  185.     left join M_BuhForms_Buh appl_buhForms on appl_buhForms.Child = BuhForm.Id
  186.     WHERE appl_buhForms.Parent = rbg.Applicant
  187.     AND BuhRow.Code = 2110
  188.     AND BuhForm.Year = (YEAR([HeaderColumnYear].Date)-1)) as [Выручка на конец последнего полного года "минус" 24 мес. (тыс. руб.)]
  189. ,analytics.s2001 as [Арбитраж. Дела в качестве ответчика. Сумма всех исков  за 12 последних месяцев (в рублях)]
  190. ,(SELECT TOP 1
  191.     SUM(StateContract.Sum)
  192.     FROM StateContract
  193.     WHERE StateContract.[Status] = 0 --исполнен
  194.     AND StateContract.Subject = rbg.Applicant
  195.     AND StateContract.Date < DATEADD(year,-1, SYSDATETIME())) as [Сумма контрактов 223-ФЗ, 44-ФЗ заключенных более 12 месяцев назад]
  196. ,analytics.S4002 as [Сумма контрактов 223-ФЗ, 44-ФЗ заключенных за 12 последних месяцев]
  197. ,(SELECT TOP 1
  198.     COUNT(StateContract.Id)
  199.     FROM StateContract
  200.     WHERE
  201.     StateContract.CustomerINN = customer.INN
  202.     AND StateContract.Subject = rbg.Applicant
  203.     AND StateContract.Date > DATEADD(year,-1, SYSDATETIME())) as [Количество заключенных контрактов с тем же бенефициаром за 12 последних месяцев]
  204. ,(SELECT TOP 1
  205.     COUNT(StateContract.Id)
  206.     FROM StateContract
  207.     WHERE
  208.     StateContract.CustomerINN = customer.INN
  209.     AND StateContract.Subject = rbg.Applicant
  210.     AND StateContract.Date < DATEADD(year,-1, SYSDATETIME())) as [Количество заключенных контрактов более 12 месяцев назад с тем же бенефициаром]
  211. ,(SELECT TOP 1 SUM(purchase.ContractSum)
  212.     FROM PurchaseOfParticipant as purchase
  213.     left join M_SubjectMSP_POP appl_pop on appl_pop.Child = purchase.Id
  214.     WHERE appl_pop.Parent = rbg.Applicant
  215.     AND purchase.PublicationDate > DATEADD(year,-1, SYSDATETIME())
  216.     ) as [Сумма заявок на контракты 223-ФЗ, 44-ФЗ за 12 последних месяцев]
  217. ,(SELECT TOP 1
  218.     COUNT(StateContract.Id)
  219.     FROM StateContract
  220.     WHERE StateContract.Subject = rbg.Applicant
  221.     AND StateContract.Date > DATEADD(year,-1, SYSDATETIME())) as [Количество заключенных контрактов за 12 последних месяцев]
  222. ,(SELECT TOP 1
  223.     COUNT(StateContract.Id)
  224.     FROM StateContract
  225.     left join ClearSpendingContract stClearSpendingContract on stClearSpendingContract.Id = StateContract.GovInformation
  226.     WHERE StateContract.Subject = rbg.Applicant
  227.     AND stClearSpendingContract.Id in (
  228.         SELECT csc_products.Parent
  229.         FROM M_CSC_products as csc_products
  230.         left join ClearSpendingProduct csp on csp.Id =csc_products.Child
  231.         left join ClearSpandingCodeNamePair codeName on codeName.Id = csp.OKPD2
  232.         WHERE SUBSTRING(codeName.code,0,charindex('.',codeName.code,0)) in (
  233.             SELECT okpd2.Number
  234.             FROM OKPD2Short as okpd2
  235.             left join M_RBG_CurrentOKPDs [rbg_currentOKPDS] on [rbg_currentOKPDS].Child = okpd2.Id
  236.             WHERE [rbg_currentOKPDS].Parent = rbg.Id
  237.             )
  238.         )
  239.     AND StateContract.Date > DATEADD(year,-1, SYSDATETIME())) as [Количество заключенных контрактов за 12 последних месяцев того же типа]
  240. ,(SELECT TOP 1
  241.     COUNT(StateContract.Id)
  242.     FROM StateContract
  243.     left join ClearSpendingContract stClearSpendingContract on stClearSpendingContract.Id = StateContract.GovInformation
  244.     WHERE StateContract.Subject = rbg.Applicant
  245.     AND stClearSpendingContract.Id in (
  246.         SELECT csc_products.Parent
  247.         FROM M_CSC_products as csc_products
  248.         left join ClearSpendingProduct csp on csp.Id =csc_products.Child
  249.         left join ClearSpandingCodeNamePair codeName on codeName.Id = csp.OKPD2
  250.         WHERE  SUBSTRING(codeName.code,0,charindex('.',codeName.code,0)) in (
  251.             SELECT okpd2.Number
  252.             FROM OKPD2Short as okpd2
  253.             left join M_RBG_CurrentOKPDs [rbg_currentOKPDS] on [rbg_currentOKPDS].Child = okpd2.Id
  254.             WHERE [rbg_currentOKPDS].Parent = rbg.Id
  255.             )
  256.         )
  257.     AND StateContract.Date < DATEADD(year,-1, SYSDATETIME())) as [Количество заключенных контрактов более 12 месяцев назад того же типа]
  258. ,(SELECT TOP 1 COUNT(purchase.Id)
  259.     FROM PurchaseOfParticipant as purchase
  260.     left join M_SubjectMSP_POP appl_pop on appl_pop.Child = purchase.Id
  261.     WHERE appl_pop.Parent = rbg.Applicant
  262.     AND purchase.PublicationDate > DATEADD(year,-1, SYSDATETIME())
  263.     ) as [Количество заявок на контракты 223-ФЗ, 44-ФЗ за 12 последних месяцев]
  264. ,okved.Code as [ОКВЭД принципала]
  265. ,riskClass.Name as [Score segment]
  266.  
  267. --PD
  268.  
  269. ,rbg.RiskRate as [Балл]
  270. FROM RequestBankGuarantee rbg
  271. left join RiskClass riskClass on riskClass.Id = rbg.RiskKlass
  272. left join TaxForm taxForm on rbg.TaxForm=taxForm.Id
  273. left join SubjectMSP applicant on rbg.Applicant=applicant.Id
  274. left join Analytics analytics on analytics.Id = applicant.Analitics
  275. left join GuaranteeType guaranteeType on rbg.Type=guaranteeType.Id
  276. left join Customer customer on rbg.Customer=customer.Id
  277. left join OkvedMSP okved on okved.Id = customer.OKVED
  278. left join AddressKLADR addressOfTheManagement on applicant.AddressOfTheManagement = addressOfTheManagement.Id
  279. left join ContractSubType contractSubType on contractSubType.Id = rbg.SubTypeContract
  280. left join AddressKLADR customerLegalAddress on customerLegalAddress.Id = customer.LegalAddress
  281. left join ClearSpendingContract clearSpendingContract on clearSpendingContract.Id = rbg.GovInformation
  282.  
  283. left join FinReportingHeaderColumn [HeaderColumnActual] on [HeaderColumnActual].Id = ((SELECT TOP 1 [HeaderColumn].Id
  284. FROM FinReportingHeaderColumn as [HeaderColumn]
  285. WHERE HeaderColumn.Id in (
  286.     SELECT  rgp_head.Child
  287.     FROM M_RGP_Headers as rgp_head
  288.     WHERE rgp_head.Parent in (
  289.         SELECT [rgp].Id FROM RequestGuaranteePage as [rgp]
  290.         WHERE [rgp].Id in (
  291.             SELECT [rbg_rgp].Child FROM M_RBG_ReportingAndMetrics as [rbg_rgp]
  292.             WHERE [rbg_rgp].Parent  = rbg.Id
  293.             )
  294.         )
  295.     )
  296.     ORDER BY [HeaderColumn].Date DESC))
  297. left join FinReportingHeaderColumn [HeaderColumnYear] on [HeaderColumnYear].Id = ((SELECT TOP 1 [HeaderColumn].Id
  298. FROM FinReportingHeaderColumn as [HeaderColumn]
  299. WHERE HeaderColumn.Id in (
  300.     SELECT rgp_head.Child
  301.     FROM M_RGP_Headers as rgp_head
  302.     WHERE rgp_head.Parent in (
  303.         SELECT [rgp].Id FROM RequestGuaranteePage as [rgp]
  304.         WHERE [rgp].Id in (
  305.             SELECT [rbg_rgp].Child FROM M_RBG_ReportingAndMetrics as [rbg_rgp]
  306.             WHERE [rbg_rgp].Parent  = rbg.Id           
  307.             )
  308.         )
  309.     )
  310.     AND MONTH(HeaderColumn.Date) = 12
  311.     ORDER BY [HeaderColumn].Date DESC))
  312. WHERE rbg.RiskRate > 0
Advertisement
Add Comment
Please, Sign In to add comment