|
v7: Прямые запросы. Отбор по списку. | ☑ | ||
---|---|---|---|---|
0
Альбатрос
24.12.13
✎
10:35
|
ТекстЗапроса = "SELECT
| Журнал.DocNo as НомерДок, | Журнал.IDDOC as [Ссылочка $Документ.ВводОстатковКредита], | Журнал.SP1165 [Клиент $Справочник.Клиенты], | Журнал.SP1005 [Фирма $Справочник.Фирмы], | Журнал.IDDocDEF as ВидДока, | $Док.Сумма as СуммаДокумента, | Док.SP7521 as АлкИдентификатор, | Док.SP5704 as [ВидВвода $Справочник.ВидыВОК], | CAST(LEFT(Журнал.DATE_TIME_IDDOC, 8) AS DateTime) as ДатаДок | |FROM | $Документ.ВводОстатковКредита as Док |INNER JOIN | _1SJourn as Журнал | ON Журнал.IDDoc = Док.IDDoc |INNER JOIN #tt1 as Клиенты |ON Клиенты.f_0 = Журнал.SP1165 | |WHERE | CAST(LEFT(Журнал.DATE_TIME_IDDOC, 8) AS DateTime) BETWEEN ? AND ? |AND Журнал.Closed&1=1 |AND Док.SP5704 IN (SELECT Val FROM #Группа) |GROUP BY |Журнал.IDDOC, |Док.SP7521, |Док.SP5704, |Журнал.SP1165, |Журнал.SP1005, |Журнал.IDDocDEF, |Журнал.DocNo, |$Док.Сумма, | CAST(LEFT(Журнал.DATE_TIME_IDDOC, 8) AS DateTime) |"; глЗапросSQL.Подготовить(ТекстЗапроса); Если глЗапросSQL.ПостроитьПараметры() = 1 Тогда глЗапросSQL.УстПараметр(1, НачДата); глЗапросSQL.УстПараметр(2, КонДата); КонецЕсли; глЗапросSQL.УложитьСписокОбъектов(Список, "#Группа", СпрВидов.Вид()); Результат2 = глЗапросSQL.ВыполнитьИнструкцию(ТекстЗапроса); В итоге ошибка: State 07002, native 0, message [Microsoft][ODBC SQL Server Driver]Неправильное поле COUNT или ошибка синтаксиса Что неправильно? |
|||
1
Альбатрос
24.12.13
✎
10:36
|
Добавлю, что если убрать вот эту строчку:
глЗапросSQL.УложитьСписокОбъектов(Список, "#Группа", СпрВидов.Вид()); и соответственно условие в запросе на список, то запрос отрабатывает нормально. |
|||
2
toypaul
гуру
24.12.13
✎
10:38
|
параметры строить надо после уложить объекты. я думаю так.
|
|||
3
Альбатрос
24.12.13
✎
10:40
|
(2) Вот мля! Спасибо!
|
|||
4
Ёпрст
24.12.13
✎
10:42
|
И зачем тут параметизированный запрос - хз..
Ты его многократно в цикле выполнять будешь ? :) |
|||
5
sapphire
24.12.13
✎
10:44
|
(1) Не забывай (NOLOCK) для физических таблиц.
|
|||
6
sapphire
24.12.13
✎
10:45
|
(1) Используешь 1сpp
и пишешь | Док.SP7521 as АлкИдентификатор, | Док.SP5704 as [ВидВвода $Справочник.ВидыВОК], не кошерно, ИМХО |
|||
7
Альбатрос
24.12.13
✎
10:49
|
(4) (5) (6) Поясните, пожалуйста. Я с прямыми почти впервые работаю.
|
|||
8
sapphire
24.12.13
✎
10:51
|
||||
9
Ёпрст
24.12.13
✎
10:53
|
||||
10
sapphire
24.12.13
✎
10:54
|
||||
11
sapphire
24.12.13
✎
10:54
|
(9) :))) то же самое, что и в (8) :)))
|
|||
12
sapphire
24.12.13
✎
10:56
|
(7) кста, запомни ресурс из (8) - там масса полезной инфы.
|
|||
13
Альбатрос
24.12.13
✎
11:10
|
Спасибо огромное!!! Изучаю
|
|||
14
Альбатрос
24.12.13
✎
11:32
|
Мужики, все же нужно пояснение по отбору из списка.
Заполнение списка: Список = СоздатьОбъект("СписокЗначений"); СпрВидов = СОздатьОбъект("Справочник.ВидыВОК"); СпрВидов.НайтиПоКоду(" 100",0); Список.ДобавитьЗначение(СпрВидов.ТекущийЭлемент()); СпрВидов.НайтиПоКоду(" 50",0); Список.ДобавитьЗначение(СпрВидов.ТекущийЭлемент()); Строка отбора в запросе: |AND Док.SP5704 IN (SELECT Val FROM #Группа) Установка лок. таблицы: глЗапросSQL.УложитьСписокОбъектов13(Список, "#Группа"); В итоге результат пустой за выбранный мной период. Нужные доки, отвечающие условиям отбора существуют, но запрос их не отбирает. |
|||
15
Альбатрос
24.12.13
✎
11:34
|
Список не пустой.
|
|||
16
sapphire
24.12.13
✎
11:40
|
(15) В списке группы, да?
|
|||
17
trad
24.12.13
✎
11:47
|
(14) УложитьСписокОбъектов vs УложитьСписокОбъектов13 - есть разница
|
|||
18
trad
24.12.13
✎
11:48
|
тип SP5704 какой?
|
|||
19
Альбатрос
24.12.13
✎
11:49
|
(17) Я и так и так пробовал.
(18) Справочник.ВидыВОК |
|||
20
Альбатрос
24.12.13
✎
11:50
|
Все, ошибку понял ))
|
|||
21
Альбатрос
24.12.13
✎
11:50
|
(16) (17) Еще раз спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |