Eprst писал(а) 08. Сентября 2010 :: 11:52:Ну и что с того что разные? ACCID один же у всех
![Улыбка Улыбка](https://www.1cpp.ru/forumfiles/Templates/Forum/default/smiley.gif)
выкидываешь соединение и втыкаешь where в итог селекта по всем юнионам который (т.е на саму БИ, там где у тебя справочник приджоин)
угу понял.
вот в квери такой запрос отрабатывает.
SELECT
БИ.Счет AS [Счет $Счет.Основной]
,БИ.Счет AS Счет_Ссылка
,БИ.Субконто1 AS Номенклатура_Ссылка
,СпрНоменклатура.CODE AS Номенклатура_КОД
,Спр.DESCR AS Наименование
,Спр.SP165 AS СтранаПроисхождения
,БИ.КоличествоОстатокДт AS КонОстКол
FROM
(
SELECT
Счет
,Валюта
,Субконто1,Субконто1_вид
,Субконто2,Субконто2_вид
,SUM(КоличествоОстаток) КоличествоОстаток
,CASE WHEN SUM(КоличествоОстаток) > 0 THEN SUM(КоличествоОстаток) ELSE 0 END КоличествоОстатокДт
,CASE WHEN SUM(КоличествоОстаток) < 0 THEN -SUM(КоличествоОстаток) ELSE 0 END КоличествоОстатокКт
FROM (
SELECT
bkttl_vt.ACCID Счет
,bkttl_vt.CURRID Валюта
,bkttl_vt.SC0 Субконто1
,bkttl_vt.VSC0 Субконто1_вид
,bkttl_vt.SC1 Субконто2
,bkttl_vt.VSC1 Субконто2_вид
,CASE WHEN bkttl_vt.KIND = '3' THEN bkttl_vt.SD+bkttl_vt.OBDT1-bkttl_vt.OBKT1+bkttl_vt.OBDT2-bkttl_vt.OBKT2 ELSE 0 END AS КоличествоОстаток
FROM _1SBKTTL bkttl_vt (nolock)
WHERE (bkttl_vt.DATE = '20100901')
AND (bkttl_vt.KIND = '3')
UNION ALL
SELECT
entry_vt.ACCDTID
,CASE WHEN entry_vt.DTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE ' 0 ' END
,entry_vt.DTSC0
,entry_vt.VDTSC0
,entry_vt.DTSC1
,entry_vt.VDTSC1
,entry_vt.AMOUNT
FROM _1SENTRY entry_vt (nolock)
WHERE (entry_vt.DATE_TIME_DOCID >= '20100901 0 0 ')
AND (entry_vt.DATE_TIME_DOCID < '20100908 0 0 ')
AND (entry_vt.ACTIVE = ' ')
AND (entry_vt.PROVKIND <> 'K')
UNION ALL
SELECT
entry_vt.ACCKTID
,CASE WHEN entry_vt.KTFLAGS & 1 = 1 THEN entry_vt.CURRID ELSE ' 0 ' END
,entry_vt.KTSC0
,entry_vt.VKTSC0
,entry_vt.KTSC1
,entry_vt.VKTSC1
,-entry_vt.AMOUNT
FROM _1SENTRY entry_vt (nolock)
WHERE (entry_vt.DATE_TIME_DOCID >= '20100901 0 0 ')
AND (entry_vt.DATE_TIME_DOCID < '20100908 0 0 ')
AND (entry_vt.ACTIVE = ' ')
AND (entry_vt.PROVKIND <> 'D')
) AS accountingbalance
GROUP BY
Счет,Валюта
,Субконто1,Субконто1_вид
,Субконто2,Субконто2_вид
HAVING (SUM(КоличествоОстаток) <> 0)
) AS БИ
LEFT JOIN SC323 AS СпрНоменклатура (nolock)
ON (СпрНоменклатура.ID = БИ.Субконто1)
LEFT JOIN SC170 AS Спр (nolock)
ON (Спр.ID = БИ.Субконто2)
не пойму как мне написать условие на счет?
нужен подзапрос и условие in чтоли?
или я могу просто написать типа:
WHERE БИ.Счет = :ВыбСчет
а потом УстановитьТекстовыйПараметр