|
v7: 1с++ не работает запрос | ☑ | ||
---|---|---|---|---|
0
Aragan
04.09.12
✎
09:44
|
SELECT
Рег.Клиент as [Клиент $Справочник.Клиенты], Рег.КредДокумент as [Док $Документ] , Рег.ДолгОстаток as Количество FROM $РегистрОстатки.Взаиморасчеты(:ВыбДата,INNER JOIN ( SELECT DISTINCT $Док.Клиент as [Клиент $Справочник.Клиенты] FROM _1SJourn as Жур INNER JOIN $Документ.РасходнаяРеализ as Док ON Док.IDDoc = Жур.IDDoc INNER JOIN $Справочник.Клиенты as Клиент ON Клиент.ID = $Док.Клиент WHERE Жур.Date_Time_IDDoc BETWEEN :ВыбДата AND :ВыбДата~ AND Жур.IDDocDef = $ВидДокумента.РасходнаяРеализ AND Жур.Closed & 1 = 1) as qw on Клиент = qw.Клиент ,, ) as Рег |
|||
1
Aragan
04.09.12
✎
09:44
|
Что не так?
|
|||
2
Mikeware
04.09.12
✎
09:45
|
что за бред?
|
|||
3
Андрюха
04.09.12
✎
09:46
|
(0) Вид документа из Жур добавь в SELECT
|
|||
4
Mikeware
04.09.12
✎
09:48
|
(3) какой там "вид документа" - он в секцию соединений виртуальной таблиы напихал всякой фигни, да еще типизирует в ней зачем-то
|
|||
5
Aragan
04.09.12
✎
09:51
|
(4) Мне нужны остатки по списку клиентов по которым были выписанны документы за период
|
|||
6
Aragan
04.09.12
✎
09:51
|
SELECT DISTINCT
$Док.Клиент as [Клиент $Справочник.Клиенты] FROM _1SJourn as Жур INNER JOIN $Документ.РасходнаяРеализ as Док ON Док.IDDoc = Жур.IDDoc INNER JOIN $Справочник.Клиенты as Клиент ON Клиент.ID = $Док.Клиент WHERE Жур.Date_Time_IDDoc BETWEEN :ВыбДата AND :ВыбДата~ AND Жур.IDDocDef = $ВидДокумента.РасходнаяРеализ AND Жур.Closed & 1 = 1 Этот кусок отдельно нормально отрабатывает и список возвращает |
|||
7
Ёпрст
04.09.12
✎
09:54
|
(6) и нафига ЭТО унутр ВТ пихать, еще и с типизацией ?
|
|||
8
Mikeware
04.09.12
✎
09:56
|
<Соединение>
Тип: конструкция типа join. На языке SQL можно описать дополнительные соединения с таблицами, которые могут быть необходимы для формирования условий в следующем параметре. Можно оперировать полями измерений регистра, обращаясь к ним по идентификатору 1С. По умолчанию отсутствует. <Условие> Тип: конструкция типа where. На языке SQL можно описать условие для ограничения выборки. Можно оперировать полями измерений регистра, обращаясь к ним по идентификатору 1С, а также полями таблиц, соединения с которыми были описаны в предыдущем параметре. По умолчанию отсутствует. |
|||
9
Ёпрст
04.09.12
✎
10:04
|
так хотя бы пиши:
select Рег.Клиент as [Клиент $Справочник.Клиенты], Рег.КредДокумент as [Док $Документ] , Рег.ДолгОстаток as Количество from $РегистрОстатки.Взаиморасчеты(:ВыбДата,,,(Клиент,КредДокумент),(ДолгОстаток)) as Рег where Рег.Клиент in ( select $Док.Клиент from $Документ.РасходнаяРеализ (nolock) as Док inner join _1SJourn (nolock) as Жур ON Док.IDDoc = Жур.IDDoc and Жур.IDDocDef = $ВидДокумента.РасходнаяРеализ and Жур.Date_Time_IDDoc BETWEEN :ВыбДата AND :ВыбДата~ and Жур.Closed & 1 = 1) |
|||
10
trad
04.09.12
✎
10:04
|
(7) а чо бы и не впихать, но с типизацией конечно погорячился
|
|||
11
Aragan
04.09.12
✎
10:17
|
(9) Запрос >>> ODBCRecordset:ВыполнитьИнструкцию() error:
Meta name parser error: неизвестное метаимя или алиас "$Док" |
|||
12
Aragan
04.09.12
✎
10:21
|
(10) Да типизацию уже убрал все равно не отрабатывает
|
|||
13
Ёпрст
04.09.12
✎
10:27
|
(11)
select Рег.Клиент as [Клиент $Справочник.Клиенты], Рег.КредДокумент as [Док $Документ] , Рег.ДолгОстаток as Количество from $РегистрОстатки.Взаиморасчеты(:ВыбДата,,,(Клиент,КредДокумент),(ДолгОстаток)) as Рег where Рег.Клиент in ( select $Док.Клиент from $Документ.РасходнаяРеализ as Док (nolock) inner join _1SJourn as Жур (nolock)ON Док.IDDoc = Жур.IDDoc and Жур.IDDocDef = $ВидДокумента.РасходнаяРеализ and Жур.Date_Time_IDDoc BETWEEN :ВыбДата AND :ВыбДата~ and Жур.Closed & 1 = 1) |
|||
14
Aragan
04.09.12
✎
10:31
|
(13) ТОчно))
|
|||
15
ЧеловекДуши
04.09.12
✎
10:36
|
(14)Но быстрее было бы, если бы ты запрос уложил бы во временную таблицу
select $Док.Клиент from $Документ.РасходнаяРеализ as Док (nolock) inner join _1SJourn as Жур (nolock)ON Док.IDDoc = Жур.IDDoc and Жур.IDDocDef = $ВидДокумента.РасходнаяРеализ and Жур.Date_Time_IDDoc BETWEEN :ВыбДата AND :ВыбДата~ and Жур.Closed & 1 = 1) |
|||
16
Aragan
04.09.12
✎
10:41
|
а как бы добавить еще конструкцию типа -
Условие(КредДокумент.ДатаДок<Дата(Число(ВыбКонПериода-Клиент.СрокРеализ-Клиент.ПослеСрокаРеализ))); |
|||
17
Ёпрст
04.09.12
✎
10:47
|
(16) а есть уверенность, что вот такое преобразование числа к дате даёт нужный результат ?!
Дата(Число(ВыбКонПериода-Клиент.СрокРеализ-Клиент.ПослеСрокаРеализ)) |
|||
18
Ёпрст
04.09.12
✎
10:47
|
мот проще так писать, не ?
ВыбКонПериода-Клиент.СрокРеализ-Клиент.ПослеСрокаРеализ нахрена дату в число и потом обратно ? |
|||
19
Mikeware
04.09.12
✎
10:48
|
(16) datediff()
|
|||
20
Ёпрст
04.09.12
✎
10:49
|
а так, dateadd в помощь для разности ВыбКонПериода-Клиент.СрокРеализ-Клиент.ПослеСрокаРеализ
|
|||
21
Mikeware
04.09.12
✎
10:51
|
(20) ну, или так...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |