|
v7: Прямой запрос по журналу документов | ☑ | ||
---|---|---|---|---|
0
dum80
18.02.16
✎
10:59
|
Помогите с прямым запросом, очень редко их делаю:(
вот такая ошибка: \EXTFORMS\ТЕСТ ВЫБОРА ДОК ИЗ ЖУРНАЛА ПРЯМЫМ ЗАПРОСОМ.ERT(24)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'Жур'. Пытаюсь выбрать из документов "ВозвратПоНаим" товары таким запросом: Запрос = СоздатьОбъект("ODBCRecordset"); Запрос.Отладка(); ТекстЗапроса = " |SELECT |$ДокС.Товар as [Товар $Справочник.Номенклатура], |SUM($ДокС.Количество) as Количество |FROM |$ДокументСтроки.ВозвратПоНаим as ДокС |INNER JOIN |$Документ.ВозвратПоНаим as Док ON Док.IDDoc = ДокС.IDDoc AND |$Док.Клиент = :ВыбКлиент |INNER JOIN |_1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc |Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND |Жур.Closed & 1 = 1 |GROUP BY |$ДокС.Товар"; Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата); Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата); Запрос.УстановитьТекстовыйПараметр("ВыбКлиент", ВыбКлиент); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТЗ.Выгрузить(ТабЗ); в отладке он такой: SELECT ДокС.sp6822 as [Товар $Справочник.Номенклатура], SUM(ДокС.sp6824) as Количество FROM dt6816 as ДокС INNER JOIN dh6816 as Док ON Док.IDDoc = ДокС.IDDoc AND Док.sp6817 = ' 8B8 ' INNER JOIN _1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc Жур.Date_Time_IDDoc BETWEEN '20160101' AND '20160131Z' AND Жур.Closed & 1 = 1 GROUP BY ДокС.sp6822 |
|||
1
Mikeware
18.02.16
✎
11:02
|
|INNER JOIN
|_1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc |Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND |
|||
2
dum80
18.02.16
✎
11:22
|
Спасибо, но все равно не понял:(
|
|||
3
Mikeware
18.02.16
✎
11:23
|
(2) |INNER JOIN
|_1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc WHERE |Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND |
|||
4
dum80
18.02.16
✎
11:26
|
Спасибо большое
|
|||
5
Ёпрст
18.02.16
✎
11:26
|
(0)
|_1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc |AND --тут пропущен AND, Карл! |Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AN |
|||
6
Ёпрст
18.02.16
✎
11:27
|
(3) у него же иннер, можно вере и не писать :)
|
|||
7
Ёпрст
18.02.16
✎
11:28
|
(0) это, втыкай хинт (nolock) еще
|
|||
8
Mikeware
18.02.16
✎
11:28
|
(6) согласен, можно AND. Но хоть что-то надо написать :-)
сработают они в данном случае одинаково |
|||
9
Mikeware
18.02.16
✎
11:29
|
(7) кстати, OnDrop у меня так и не перехватывается...
|
|||
10
Ёпрст
18.02.16
✎
11:36
|
(9) ну хз, лень смотреть даже, 7.7 забросили :(
|
|||
11
dum80
18.02.16
✎
11:37
|
чет тут все равно не то, ошибки нет запрос выполняется, но все пусто
|
|||
12
Mikeware
18.02.16
✎
11:38
|
(10) мне ее еще год тянуть...
|
|||
13
Ёпрст
18.02.16
✎
11:40
|
(11) нет проведенных документо за данный период
|
|||
14
Mikeware
18.02.16
✎
11:40
|
(11) обрезай и проверяй, обрезай и проверяй...
|
|||
15
dum80
18.02.16
✎
11:45
|
Спасибо, все нормально, не того клиента смотрели
|
|||
16
dum80
18.02.16
✎
16:54
|
Захотелось чуть усложнить запрос, добавил клиентов, результат пустой, тыкнете где косяк:
Запрос = СоздатьОбъект("ODBCRecordset"); Запрос.Отладка(); ТекстЗапроса = " |SELECT |$Док.Клиент as [Клиент $Справочник.Контрагенты], |$ДокС.Товар as [Товар $Справочник.Номенклатура], |SUM($ДокС.Количество) as Количество |FROM |$ДокументСтроки.ВозвратПоНаим as ДокС |INNER JOIN |$Документ.ВозвратПоНаим as Док ON Док.IDDoc = ДокС.IDDoc AND |$Док.Клиент IN (SELECT $ВидСправочника36.Контрагенты + Val FROM #ВгруппаК) |INNER JOIN |_1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc AND |Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND |Жур.Closed & 1 = 1 |GROUP BY |$Док.Клиент, $ДокС.Товар"; Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата); Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата); Запрос.УложитьСписокОбъектов(ВыбКлиент,"#ВгруппаК","Контрагенты"); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТЗ.Выгрузить(ТабЗ); |
|||
17
Mikeware
18.02.16
✎
16:56
|
(16) см (14)
|
|||
18
Mikeware
18.02.16
✎
16:57
|
(16) и тыц уверен, что у тебя клиент в документе - просто типа Справочник?
|
|||
19
dum80
18.02.16
✎
16:59
|
Точно,точно, он Справочник.Контрагенты
|
|||
20
Ёпрст
18.02.16
✎
16:59
|
(16)
(SELECT Val FROM #ВгруппаК) |
|||
21
Mikeware
18.02.16
✎
17:00
|
(19) дык зачем $ВидСправочника36.Контрагенты+ ???
|
|||
22
dum80
18.02.16
✎
17:06
|
скопировал с аналога не подумав
Огромное спасибо,за помощь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |