1SQLITE Если НачКвартала(Док.ДатаДок) = НачМесяца(Док.ДатаДок) Тогда //первый месяц квартала СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3)))"; ИначеЕсли ДобавитьМесяц(НачКвартала(Док.ДатаДок), 1) = НачМесяца(Док.ДатаДок) Тогда //второй СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3))+(CAST(Остатки.OBDT1 as NUMERIC(15,3))-CAST(Остатки.OBKT1 as NUMERIC(15,3))))"; ИначеЕсли ДобавитьМесяц(НачКвартала(Док.ДатаДок), 2) = НачМесяца(Док.ДатаДок) Тогда //третий СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3))+(CAST(Остатки.OBDT1 as NUMERIC(15,3))-CAST(Остатки.OBKT1 as NUMERIC(15,3)))+(CAST(Остатки.OBDT2 as NUMERIC(15,3))-CAST(Остатки.OBKT2 as NUMERIC(15,3))))"; КонецЕсли; ТекстЗапроса=" |SELECT | substr(Остатки.SC2, 1, 9) as [Партия_вид:Справочник.Партии], | "+СтрСальдо+" as КолвоОстаток, | SUM(0) as КолвоДебет, | SUM(0) as КолвоКредит |FROM | _1SBKTTL AS Остатки |WHERE | (Остатки.DATE = @ДатаПроводкиНач) AND (Остатки.SP4373 = @НашаФирма) AND (Остатки.KIND = '3') AND | (Остатки.ACCID = @Счет) AND (Остатки.SC0 = @Склад) AND (Остатки.SC1 = @ТМЦ) |GROUP BY | Остатки.SC2 | |UNION ALL | |SELECT | substr(Проводки.KTSC2,1,9) as [Партия_вид:Справочник.Партии], | SUM(0) as КолвоОстаток, | SUM(0) as КолвоДебет, | SUM(CAST(Проводки.AMOUNT as NUMERIC(15,3))) as КолвоКредит | FROM | _1SENTRY as Проводки | WHERE | (Проводки.ACCKTID = @Счет) AND (Проводки.KTSC0 = @Склад) AND (Проводки.KTSC1 = @ТМЦ) AND | (Проводки.idx_DATE_TIME_DOCID_NUMBER_CORNO BETWEEN @ДатаПроводкиНач AND @ДатаПроводкиКон) | GROUP BY | Проводки.KTSC2 | | UNION ALL | | SELECT | substr(Проводки.DTSC2,1,9) as [Партия_вид:Справочник.Партии], | (0) as КолвоОстаток, | (CAST(Проводки.AMOUNT as NUMERIC(15,3))) as КолвоДебет, | (0) as КолвоКредит | FROM | _1SENTRY as Проводки | WHERE | (Проводки.ACCDTID = @Счет) and (Проводки.DTSC0 = @Склад) and (Проводки.DTSC1 = @ТМЦ) and | (Проводки.idx_DATE_TIME_DOCID_NUMBER_CORNO BETWEEN @ДатаПроводкиНач AND @ДатаПроводкиКон) | GROUP BY | Проводки.DTSC2 |";
OLEDB Если НачКвартала(Док.ДатаДок) = НачМесяца(Док.ДатаДок) Тогда //первый месяц квартала СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3)))"; ИначеЕсли ДобавитьМесяц(НачКвартала(Док.ДатаДок), 1) = НачМесяца(Док.ДатаДок) Тогда //второй СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3))+(CAST(Остатки.OBDT1 as NUMERIC(15,3))-CAST(Остатки.OBKT1 as NUMERIC(15,3))))"; ИначеЕсли ДобавитьМесяц(НачКвартала(Док.ДатаДок), 2) = НачМесяца(Док.ДатаДок) Тогда //третий СтрСальдо = "SUM(CAST(Остатки.SD as NUMERIC(15,3))+(CAST(Остатки.OBDT1 as NUMERIC(15,3))-CAST(Остатки.OBKT1 as NUMERIC(15,3)))+(CAST(Остатки.OBDT2 as NUMERIC(15,3))-CAST(Остатки.OBKT2 as NUMERIC(15,3))))"; КонецЕсли; ТекстЗапроса = "SELECT | Остатки.SC2 as [Партия $Справочник.Партии], | "+СтрСальдо+" as [КолвоОстаток $Число], | SUM(0) as [КолвоДебет $Число], | SUM(0) as [КолвоКредит $Число] |FROM | 1SBKTTL AS Остатки |WHERE | тки.SC1+Остатки.SC2+Остатки.CURRID LIKE | _______'+'_________')) |GROUP BY | Остатки.SC2 | | UNION ALL | |SELECT | Проводки.KTSC2 as [Партия $Справочник.Партии] | , SUM(0) as [КолвоОстаток $Число] | , SUM(0) as [КолвоДебет $Число] | , SUM(Проводки.AMOUNT) as [КолвоКредит $Число] |FROM | 1SENTRY as Проводки |Where | (Проводки.ACCKTID = :Счет) and (Проводки.KTSC0 = :Склад) and (Проводки.KTSC1 = :ТМЦ) and | оводки.CORNO,5) | BETWEEN (DTOS(:ДатаПроводкиНач~~)+' '+' '+' '+' ') AND (:ДатаПроводкиКон~+'ZZZZZ'+'ZZZZZ')) | GROUP BY | Проводки.KTSC2 | | UNION ALL | |SELECT | Проводки.DTSC2 as [Партия $Справочник.Партии] | , SUM(0) as [КолвоОстаток $Число] | , SUM(Проводки.AMOUNT) as [КолвоДебет $Число] | , SUM(0) as [КолвоКредит $Число] |FROM | 1SENTRY as Проводки |Where | (Проводки.ACCDTID = :Счет) and (Проводки.DTSC0 = :Склад) and (Проводки.DTSC1 = :ТМЦ) and | оводки.CORNO,5) | BETWEEN (DTOS(:ДатаПроводкиНач~~)+' '+' '+' '+' ') AND (:ДатаПроводкиКон~+'ZZZZZ'+'ZZZZZ')) | GROUP BY | Проводки.DTSC2 |";
|