![]() |
|
v7: 1с++ В запросе получить значение реквизита измерения регистра | ☑ | ||
---|---|---|---|---|
0
Стрелок
20.09.13
✎
09:28
|
Задача получить в запросе значение реквизита (строка) измерения (справочник) регистра
понимаю что нужен джоин а как не могу понять. 1срр недоступен. работал ночь голова не соображает. помогите конкретным куском листинга вот запрос Текст="SELECT |Рег.Фирма as [Фирма $Справочник.Фирмы], |Рег.Контрагент as [Контрагент $Справочник.Контрагенты], |Рег.КредДокумент as [КредДокумент $Документ], |SUM(Рег.Долг) AS Долг |FROM | (SELECT | $Рег_1.Фирма AS Фирма, | $Рег_1.Контрагент AS Контрагент, | $Рег_1.КредДокумент AS КредДокумент, | $Рег_1.Долг AS Долг | FROM | $РегистрИтоги.ВзаиморасчетыПокупателей AS Рег_1 | WHERE | (PERIOD = :ПредМесяц) | AND $Рег_1.Контрагент IN (SELECT Val FROM #Группа) | AND $Рег_1.Фирма<>:ПустаяФирма |UNION ALL | | SELECT | $Рег_2.Фирма AS Фирма, | $Рег_2.Контрагент AS Контрагент, | $Рег_2.КредДокумент AS КредДокумент, | $Рег_2.Долг*(1-Рег_2.debkred*2) AS Долг | FROM | $Регистр.ВзаиморасчетыПокупателей AS Рег_2 | INNER JOIN | _1SJourn jr ON Рег_2.iddoc = jr.iddoc | AND (jr.Date_Time_IDDoc BETWEEN :НачалоМесяца AND :ПредДата~) | AND ($ФлагРегистра.ВзаиморасчетыПокупателей = 1) | AND ($Рег_2.Контрагент IN (SELECT Val FROM #Группа)) | AND ($Рег_2.Фирма<>:ПустаяФирма) | ) Рег |WHERE (Долг<>0) |GROUP BY | Рег.Фирма, | Рег.Контрагент, | Рег.КредДокумент | |ORDER BY | Рег.Контрагент"; надо в запросе получить реквизит "КодВКПК" измерения "Контрагент" уж очень не хочется потом лопатить ТЗ на предмет установки этого самого кода. |
|||
1
Ёпрст
гуру
20.09.13
✎
09:31
|
select
Клиентосы.КодВКПК,Рег.Фирма as [Фирма $Справочник.Фирмы], ... ... left join $Справочник.Клиентосы as Клиентосы on Клиентосы.id = Рег.Контрагент GROUP BY | Рег.Фирма,Клиентосы.КодВКПК,... |
|||
2
Стрелок
20.09.13
✎
09:32
|
(1) фирма тут каким боком? я понимаю что с ночи торможу, ты не мог бы прямо в мой запрос вставить то что надо - я оттанцую при случаи ;)
|
|||
3
Стрелок
20.09.13
✎
09:33
|
а кажется вкурил. сенксь
левое соединение ставить ДО |FROM | (SELECT или внутри? |
|||
4
Ёпрст
гуру
20.09.13
✎
09:33
|
Текст="SELECT
|Клиентосы.КодВКПК, |Рег.Фирма as [Фирма $Справочник.Фирмы], |Рег.Контрагент as [Контрагент $Справочник.Контрагенты], |Рег.КредДокумент as [КредДокумент $Документ], |SUM(Рег.Долг) AS Долг |FROM | (SELECT | $Рег_1.Фирма AS Фирма, | $Рег_1.Контрагент AS Контрагент, | $Рег_1.КредДокумент AS КредДокумент, | $Рег_1.Долг AS Долг | FROM | $РегистрИтоги.ВзаиморасчетыПокупателей AS Рег_1 | WHERE | (PERIOD = :ПредМесяц) | AND $Рег_1.Контрагент IN (SELECT Val FROM #Группа) | AND $Рег_1.Фирма<>:ПустаяФирма |UNION ALL | | SELECT | $Рег_2.Фирма AS Фирма, | $Рег_2.Контрагент AS Контрагент, | $Рег_2.КредДокумент AS КредДокумент, | $Рег_2.Долг*(1-Рег_2.debkred*2) AS Долг | FROM | $Регистр.ВзаиморасчетыПокупателей AS Рег_2 | INNER JOIN | _1SJourn jr ON Рег_2.iddoc = jr.iddoc | AND (jr.Date_Time_IDDoc BETWEEN :НачалоМесяца AND :ПредДата~) | AND ($ФлагРегистра.ВзаиморасчетыПокупателей = 1) | AND ($Рег_2.Контрагент IN (SELECT Val FROM #Группа)) | AND ($Рег_2.Фирма<>:ПустаяФирма) | ) Рег |left join $Справочник.Клиентосы as Клиентосы on Клиентосы.id = Рег.Контрагент |WHERE (Долг<>0) |GROUP BY Клиентосы.КодВКПК, | Рег.Фирма, | Рег.Контрагент, | Рег.КредДокумент | |ORDER BY | Рег.Контрагент"; |
|||
5
Стрелок
20.09.13
✎
09:41
|
сенькс
|
|||
6
Ёпрст
гуру
20.09.13
✎
10:11
|
|WHERE (Долг<>0)
вот это переделай на |having SUM(Рег.Долг)<>0 |
|||
7
Стрелок
20.09.13
✎
10:14
|
(6) ок гляну
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |