Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 11 ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите, пожалуйста, в составлении запроса (число прочтений - 34865 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите, пожалуйста, в составлении запроса
Ответ #15 - 10. Сентября 2014 :: 14:01
Печать  
Код
Выбрать все
ТекстЗапроса = "
	|Select
	|   Рег.Фирма	[Фирма $Справочник.Фирмы],
	|   Рег.Товар 	[Товар $Справочник.Номенклатура],
	|   Рег.Партия	[Партия $Справочник.Партии],
	|   Рег.Склад 	[Склад $Справочник.Подразделения],
	|   Рег.ШтукОстаток as Кво
	|FROM
	|   $РегистрОстатки.Остатки(,Фирма in (Select val from #ВыбФирма) AND
	|	Склад = :ВыбСклад,) as Рег
	|";



	Запрос = СоздатьОбъект("ODBCRecordSet");
	Запрос.УложитьСписокОбъектов(ВыбФирма,"#ВыбФирма", "Фирмы");
	Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);

	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();  



копи-пасте, чего уж там
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #16 - 10. Сентября 2014 :: 14:16
Печать  
Eprst писал(а) 10. Сентября 2014 :: 14:01:
Код
Выбрать все
ТекстЗапроса = "
	|Select
	|   Рег.Фирма	[Фирма $Справочник.Фирмы],
	|   Рег.Товар 	[Товар $Справочник.Номенклатура],
	|   Рег.Партия	[Партия $Справочник.Партии],
	|   Рег.Склад 	[Склад $Справочник.Подразделения],
	|   Рег.ШтукОстаток as Кво
	|FROM
	|   $РегистрОстатки.Остатки(,Фирма in (Select val from #ВыбФирма) AND
	|	Склад = :ВыбСклад,) as Рег
	|";



	Запрос = СоздатьОбъект("ODBCRecordSet");
	Запрос.УложитьСписокОбъектов(ВыбФирма,"#ВыбФирма", "Фирмы");
	Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);

	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();  



копи-пасте, чего уж там



эх, копи-пасте - результат:
State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "rg4080_vt"
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #17 - 10. Сентября 2014 :: 14:17
Печать  
Могут быть какие-то глюки SQL servera?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Помогите, пожалуйста, в составлении запроса
Ответ #18 - 10. Сентября 2014 :: 14:46
Печать  
Перед этим: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
вставь Запрос.Отладка(1) а результат сюда
  
Наверх
ICQ  
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #19 - 10. Сентября 2014 :: 15:06
Печать  

Select
   Рег.Фирма      [Фирма $Справочник.Фирмы],
   Рег.Товар      [Товар $Справочник.Номенклатура],
   Рег.Партия      [Партия $Справочник.Партии],
   Рег.Склад      [Склад $Справочник.Подразделения],
   Рег.ШтукОстаток as Кво
FROM
   (
select
rg4080_vt.sp4081 as Фирма,
rg4080_vt.sp4082 as Склад,
rg4080_vt.sp4083 as Товар,
rg4080_vt.sp4084 as Партия,
rg4080_vt.sp4085 as ШтукОстаток,
rg4080_vt.sp4086 as МассаОстаток,
rg4080_vt.sp4087 as МассаБКОстаток,
rg4080_vt.sp4382 as СуммаОстаток
from rg4080 as rg4080_vt (nolock)
rg4080_vt.sp4081 in (Select val from #ВыбФирма) AND      rg4080_vt.sp4082 = '    2P   '
where rg4080_vt.period={d '2014-09-01'}
and (
rg4080_vt.sp4085 <> 0 or
rg4080_vt.sp4086 <> 0 or
rg4080_vt.sp4087 <> 0 or
rg4080_vt.sp4382 <> 0
)
) as Рег

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\#TEST\SQL\ТЕСТ02.ERT(23)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "rg4080_vt".
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #20 - 10. Сентября 2014 :: 15:09
Печать  
Если так:
Код
Выбрать все
Процедура Сформировать()
//
ТекстЗапроса = "
	|Select
	|   Рег.Фирма	[Фирма $Справочник.Фирмы],
	|   Рег.Товар 	[Товар $Справочник.Номенклатура],
	|   Рег.Партия	[Партия $Справочник.Партии],
	|   Рег.Склад 	[Склад $Справочник.Подразделения],
	|   Рег.ШтукОстаток as Кво
	|FROM
	|   $РегистрОстатки.Остатки(,Фирма = :ВыбФирма) AND
	|	Склад = :ВыбСклад,) as Рег
	|";



	Запрос = СоздатьОбъект("ODBCRecordSet");
	Запрос.УстановитьТекстовыйПараметр("ВыбФирма", ВыбФирма);
	Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);

	Запрос.Отладка(1);
	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();


КонецПроцедуры
 


то:

Select
   Рег.Фирма      [Фирма $Справочник.Фирмы],
   Рег.Товар      [Товар $Справочник.Номенклатура],
   Рег.Партия      [Партия $Справочник.Партии],
   Рег.Склад      [Склад $Справочник.Подразделения],
   Рег.ШтукОстаток as Кво
FROM
   (
select
rg4080_vt.sp4081 as Фирма,
rg4080_vt.sp4082 as Склад,
rg4080_vt.sp4083 as Товар,
rg4080_vt.sp4084 as Партия,
rg4080_vt.sp4085 as ШтукОстаток,
rg4080_vt.sp4086 as МассаОстаток,
rg4080_vt.sp4087 as МассаБКОстаток,
rg4080_vt.sp4382 as СуммаОстаток
from rg4080 as rg4080_vt (nolock)
rg4080_vt.sp4081 = '    13   '
where rg4080_vt.period={d '2014-09-01'}
and (
rg4080_vt.sp4085 <> 0 or
rg4080_vt.sp4086 <> 0 or
rg4080_vt.sp4087 <> 0 or
rg4080_vt.sp4382 <> 0
)
) as AND
     Склад = '    2P   ',) as Рег

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\#TEST\SQL\ТЕСТ02.ERT(23)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "rg4080_vt".
  
Наверх
 
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Помогите, пожалуйста, в составлении запроса
Ответ #21 - 10. Сентября 2014 :: 17:36
Печать  
Eprst писал(а) 10. Сентября 2014 :: 14:01:
ТекстЗапроса = "
     |Select
     |   Рег.Фирма      [Фирма $Справочник.Фирмы],
     |   Рег.Товар      [Товар $Справочник.Номенклатура],
     |   Рег.Партия      [Партия $Справочник.Партии],
     |   Рег.Склад      [Склад $Справочник.Подразделения],
     |   Рег.ШтукОстаток as Кво
     |FROM
     |   $РегистрОстатки.Остатки(,,Фирма in (Select val from #ВыбФирма) AND
     |      Склад = :ВыбСклад,,) as Рег
     |";

запятушки не хватает и в конце по-моему тоже, вот дока
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #22 - 11. Сентября 2014 :: 06:56
Печать  
pavel_tr писал(а) 10. Сентября 2014 :: 17:36:
Eprst писал(а) 10. Сентября 2014 :: 14:01:
ТекстЗапроса = "
     |Select
     |   Рег.Фирма      [Фирма $Справочник.Фирмы],
     |   Рег.Товар      [Товар $Справочник.Номенклатура],
     |   Рег.Партия      [Партия $Справочник.Партии],
     |   Рег.Склад      [Склад $Справочник.Подразделения],
     |   Рег.ШтукОстаток as Кво
     |FROM
     |   $РегистрОстатки.Остатки(,,Фирма in (Select val from #ВыбФирма) AND
     |      Склад = :ВыбСклад,,) as Рег
     |";

запятушки не хватает и в конце по-моему тоже, вот дока


Спасибо за ссылку на док.
Добавил по Вашему совету запятые, но:
State 42000, native 156, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова "AND".
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите, пожалуйста, в составлении запроса
Ответ #23 - 11. Сентября 2014 :: 07:10
Печать  
Свой текст запроса из отладки приведи и обычный тоже
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #24 - 11. Сентября 2014 :: 07:35
Печать  
Eprst писал(а) 11. Сентября 2014 :: 07:10:
Свой текст запроса из отладки приведи и обычный тоже


Код
Выбрать все
Процедура Сформировать()
//
ТекстЗапроса = "
	|Select
	|   Рег.Фирма	[Фирма $Справочник.Фирмы],
	|   Рег.Товар 	[Товар $Справочник.Номенклатура],
	|   Рег.Партия	[Партия $Справочник.Партии],
	|   Рег.Склад 	[Склад $Справочник.Подразделения],
	|   Рег.ШтукОстаток as Кво
	|FROM
	|   $РегистрОстатки.Остатки(,,Фирма = :ВыбФирма) AND
	|	Склад = :ВыбСклад,,) as Рег
	|";



	Запрос = СоздатьОбъект("ODBCRecordSet");
	Запрос.УстановитьТекстовыйПараметр("ВыбФирма", ВыбФирма);
	Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);

	Запрос.Отладка(1);
	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();


КонецПроцедуры 



отладка:
Select
   Рег.Фирма      [Фирма $Справочник.Фирмы],
   Рег.Товар      [Товар $Справочник.Номенклатура],
   Рег.Партия      [Партия $Справочник.Партии],
   Рег.Склад      [Склад $Справочник.Подразделения],
   Рег.ШтукОстаток as Кво
FROM
   (
select
rg4080_vt.sp4081 as Фирма,
rg4080_vt.sp4082 as Склад,
rg4080_vt.sp4083 as Товар,
rg4080_vt.sp4084 as Партия,
rg4080_vt.sp4085 as ШтукОстаток,
rg4080_vt.sp4086 as МассаОстаток,
rg4080_vt.sp4087 as МассаБКОстаток,
rg4080_vt.sp4382 as СуммаОстаток
from rg4080 as rg4080_vt (nolock)
where rg4080_vt.period={d '2014-09-01'}
and (
rg4080_vt.sp4085 <> 0 or
rg4080_vt.sp4086 <> 0 or
rg4080_vt.sp4087 <> 0 or
rg4080_vt.sp4382 <> 0
)
and (rg4080_vt.sp4081 = '    13   ')
) as AND
     Склад = '    2P   ',,) as Рег

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\#TEST\SQL\ТЕСТ02.ERT(23)}: State 42000, native 156, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова "AND".      
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите, пожалуйста, в составлении запроса
Ответ #25 - 11. Сентября 2014 :: 07:38
Печать  
скобки посчитай
  

1&&2&&3
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #26 - 11. Сентября 2014 :: 07:41
Печать  
trad писал(а) 11. Сентября 2014 :: 07:38:
скобки посчитай

да вот уже увидил, добавил:
Код
Выбрать все
//*******************************************
Процедура Сформировать()
//
ТекстЗапроса = "
	|Select
	|   Рег.Фирма	[Фирма $Справочник.Фирмы],
	|   Рег.Товар 	[Товар $Справочник.Номенклатура],
	|   Рег.Партия	[Партия $Справочник.Партии],
	|   Рег.Склад 	[Склад $Справочник.Подразделения],
	|   Рег.ШтукОстаток as Кво
	|FROM
	|   $РегистрОстатки.Остатки(,Фирма = :ВыбФирма) AND
	|	(Склад = :ВыбСклад,) as Рег
	|";



	Запрос = СоздатьОбъект("ODBCRecordSet");
	Запрос.УстановитьТекстовыйПараметр("ВыбФирма", ВыбФирма);
	Запрос.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);

	Запрос.Отладка(1);
	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();


КонецПроцедуры 



результат:
Select
   Рег.Фирма      [Фирма $Справочник.Фирмы],
   Рег.Товар      [Товар $Справочник.Номенклатура],
   Рег.Партия      [Партия $Справочник.Партии],
   Рег.Склад      [Склад $Справочник.Подразделения],
   Рег.ШтукОстаток as Кво
FROM
   (
select
rg4080_vt.sp4081 as Фирма,
rg4080_vt.sp4082 as Склад,
rg4080_vt.sp4083 as Товар,
rg4080_vt.sp4084 as Партия,
rg4080_vt.sp4085 as ШтукОстаток,
rg4080_vt.sp4086 as МассаОстаток,
rg4080_vt.sp4087 as МассаБКОстаток,
rg4080_vt.sp4382 as СуммаОстаток
from rg4080 as rg4080_vt (nolock)
rg4080_vt.sp4081 = '    13   '
where rg4080_vt.period={d '2014-09-01'}
and (
rg4080_vt.sp4085 <> 0 or
rg4080_vt.sp4086 <> 0 or
rg4080_vt.sp4087 <> 0 or
rg4080_vt.sp4382 <> 0
)
) as AND
     (Склад = '    2P   ',) as Рег

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\#TEST\SQL\ТЕСТ02.ERT(23)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "rg4080_vt".
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите, пожалуйста, в составлении запроса
Ответ #27 - 11. Сентября 2014 :: 07:42
Печать  
Странный человек, грит проверил вот это, на самом деле текст запроса другой приводит.
  
Наверх
 
IP записан
 
maxy3d
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 89
Зарегистрирован: 05. Сентября 2014
Re: Помогите, пожалуйста, в составлении запроса
Ответ #28 - 11. Сентября 2014 :: 07:42
Печать  
Может добавить период на который должен расчитывать остатки?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите, пожалуйста, в составлении запроса
Ответ #29 - 11. Сентября 2014 :: 07:42
Печать  
Код
Выбрать все
|FROM
	|   $РегистрОстатки.Остатки(,,Фирма = :ВыбФирма AND Склад = :ВыбСклад,,) as Рег 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 11
ОтправитьПечать