Nick писал(а) 14. Мая 2008 :: 09:45: Цитата:Из отладки вроде народу проще - написал отчет - впихнул в тест - проверил.
Ну так если ты будешь дополнительно обрабатывать текст запроса ему хуже не будет, зато появится возможность писать текст запроса прямо в обработке
Ну как я буду такое писать в обработке
-
SELECT
PredTablSHETOV.ИДДСчет as [Док_1c_type_Документ_Счет],
PredTablSHETOV.ДатаДок as ДатаДок,
PredTablSHETOV.НомерДок as НомерДок,
ДокСчет.sp199 as [Клиент_1c_type_Справочник_Контрагенты],
PredTablSHETOV.Фирма as [Фирма_1c_type_Справочник_Фирмы],
PredTablSHETOV.Автор as [Автор_1c_type_Справочник_Пользователи],
ДокСчет.sp3825 as [Склад_1c_type_Справочник_МестаХранения],
ДокСчет.sp5375 as СуммаВалюта,
PredTablSHETOV.СуммаСчетаРуб as СуммаРубли,
PredTablSHETOV.СуммаОтгрузкиРуб as СуммаОтгрузкиРубли,
(PredTablSHETOV.СуммаОплатыРуб-PredTablSHETOV.СуммаСнятоСвыписки) as СуммаОплатыРубли,
PredTablSHETOV.СуммаСнятоСРезерваРуб as СуммаСнятоСРезерваРуб,
ДокСчет.sp5379 as ДатыОплатыСтр,
PredTablSHETOV.ДатаОплаты as ДатаОплаты,
СпрКонтрагенты.Descr as Клиент_Представление
FROM
(
SELECT
Жур.IDDoc as ИДДСчет,
Жур.Date as ДатаДок,
Жур.DOCNO as НомерДок,
Жур.sp1005 as Фирма,
Жур.sp1006 as Автор,
TablRash.ДатаОплаты as ДатаОплаты,
SUM(IIF(ОплатаСчетов.IDDoc=ОплатаСчетов.Счет,(1-ОплатаСчетов.debkred)* ОплатаСчетов.СуммаОтгрузкиРуб,000000000000.00)) AS СуммаСчетаРуб,
SUM(IIF(ОплатаСчетов.IDDoc<>ОплатаСчетов.Счет,(1-ОплатаСчетов.debkred)* ОплатаСчетов.СуммаОтгрузкиРуб,000000000000.00)) AS СуммаСнятоСРезерваРуб,
=0),(1-ОплатаСчетов.debkred)* ОплатаСчетов.СуммаОплатыРуб,000000000000.00)) AS СуммаСнятоСвыписки,
SUM((ОплатаСчетов.debkred) * ОплатаСчетов.СуммаОтгрузкиРуб) AS СуммаОтгрузкиРуб,
SUM((ОплатаСчетов.debkred) * ОплатаСчетов.СуммаОплатыРуб) AS СуммаОплатыРуб
FROM
(SELECT
РегОплатаСчетов.IDDoc as IDDoc
,РегОплатаСчетов.debkred as debkred
,РегОплатаСчетов.sp4953 as Счет
,РегОплатаСчетов.sp4955 as СуммаОтгрузкиРуб
,РегОплатаСчетов.sp4956 as СуммаОплатыРуб
FROM
ra4950 as РегОплатаСчетов
WHERE атаСчетов.lineno,4)+STR(РегОплатаСчетов.actno,6)
BETWEEN DTOS({d '2008-03-01'})+' ' AND
DTOS({d '2008-03-17'})+'ZZZZZZZZZZZZZZZZZZZZZZZZZZZ'
AND(РегОплатаСчетов.sp4952=' J ')
AND(РегОплатаСчетов.sp4953<>' 0 ')
) as ОплатаСчетов
LEFT JOIN
1SJourn as Жур ON Жур.IDDoc = ОплатаСчетов.Счет
LEFT JOIN
dh196 as ДокСчет ON ДокСчет.IDDoc = ОплатаСчетов.Счет
LEFT JOIN
(
SELECT
right(РасходнаяНакладная.sp911,9) as ИДДОснование,
MIN(РасходнаяНакладная.sp909) as ДатаОплаты
FROM dh410 as РасходнаяНакладная
WHERE РасходнаяНакладная.Iddoc BETWEEN ' 555T ' AND ' 59UV '
GROUP BY ИДДОснование
) as TablRash
ON TablRash.ИДДОснование = ОплатаСчетов.Счет
WHERE
(Жур.Date BETWEEN {d '2008-03-01'} AND {d '2008-05-14'})
AND (TablRash.ДатаОплаты<{d '2008-05-14'} )
AND ДокСчет.sp5377>ДокСчет.sp5378
GROUP BY ИДДСчет,ДатаДок,НомерДок,Фирма,Автор,ДатаОплаты
) as PredTablSHETOV
LEFT JOIN
dh196 as ДокСчет ON ДокСчет.IDDoc = PredTablSHETOV.ИДДСчет
LEFT JOIN sc46 as СпрКонтрагенты ON (СпрКонтрагенты.ID=ДокСчет.sp199)
WHERE OV.СуммаСчетаРуб)
AND( OV.СуммаСчетаРуб)OR .00) )
AND( PredTablSHETOV.СуммаСчетаРуб>-PredTablSHETOV.СуммаСнятоСРезерваРуб )
AND( (PredTablSHETOV.СуммаОтгрузкиРуб>=PredTablSHETOV.СуммаСчетаРуб)OR (PredTablSHETOV.СуммаОтгрузкиРуб<=000000000000.00) )
ORDER BY ДатаДок
и еще десяток параметров задавать.