Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Помогите с запросом по периодическим реквизитам (число прочтений - 4871 )
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Помогите с запросом по периодическим реквизитам
31. Января 2007 :: 08:30
Печать  
Ессть запрос
Код
Выбрать все
	|SELECT
	|Т.Номенклатура [Номенклатура $Справочник.Номенклатура],
	|Т.ЦенаДо ЦенаДо,
	|Т.ЦенаПосле ЦенаПосле
	|FROM(
	|SELECT
	|	СпрН.ID Номенклатура,
	|	СпрН.Descr Наименование,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата1_) ЦенаДо,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата2_) ЦенаПосле
	|FROM
	|	$Справочник.Номенклатура СпрН) as Т
	| where (Т.ЦенаДо <> Т.ЦенаПосле)
	| order by Т.Наименование";
	RS.УстановитьТекстовыйПараметр("Дата1_", Дата1_);
	RS.УстановитьТекстовыйПараметр("Дата2_", Дата2_);
	ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
 


По которому я получаю товары у которых изменилась цена за период

Для этого отчета мне неодходим документ записавший значение периодического реквизита.
пытаюсь зделать так:
Код
Выбрать все
	|SELECT
	|ТТ.Номенклатура [Номенклатура $Справочник.Номенклатура],
	|ТТ.ЦенаДо ЦенаДо,
	|ТТ.ЦенаПосле ЦенаПосле,
  |Жур.IDDOC [Док $Документ],
	|Жур.IDDocDef as Док_вид
  |FROM(
  |SELECT
	|Т.Номенклатура Номенклатура ,
	|Т.ЦенаДо ЦенаДо,
	|Т.ЦенаПосле ЦенаПосле
	|FROM(
	|SELECT
	|	СпрН.ID Номенклатура,
	|	СпрН.Descr Наименование,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата1_) ЦенаДо,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата2_) ЦенаПосле
	|FROM
	|	$Справочник.Номенклатура СпрН) as Т
	| where (Т.ЦенаДо <> Т.ЦенаПосле)) as ТТ
	| INNER JOIN _1SCONST  Конст(nolock) on Конст.[OBJID] = ТТ.Номенклатура
	| INNER JOIN _1SJourn  Журн(nolock) on Журн.[IDDOC] = Конст.OBJID
	|";
	RS.УстановитьТекстовыйПараметр("Дата1_", Дата1_);
	RS.УстановитьТекстовыйПараметр("Дата2_", Дата2_);
	ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
 


выдает ошибку The column prefix 'Жур' does not match with a table name or alias name used in the query.

Подскажите как правильно составить запрос?
  
Наверх
 
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #1 - 31. Января 2007 :: 09:56
Печать  
Дима, у тебя алиас зовется "Журн", а ты пишешь "Жур"
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #2 - 31. Января 2007 :: 10:57
Печать  
Переменную исправил, ошибок теперь не выдает, но результат формирует - бредовый.
В таблице значений повторяющиеся строки для нескольких товаров и документы не из  интервала отчета (да и вид документа у некоторых строк- например "расходная накладная"- его быть не может ).
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #3 - 31. Января 2007 :: 11:01
Печать  
получается что присоединять в моем случае таблицу 1SCONST способом:
INNER JOIN _1SCONST  Конст(nolock) on Конст.[OBJID] = ТТ.Номенклатура
-нельзя, из-за этого и получается билиберда.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #4 - 31. Января 2007 :: 11:05
Печать  
А что у тебя такое ТТ.Номенклатура ?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #5 - 31. Января 2007 :: 11:17
Печать  
ТТ.Номенклатура - номенклатура которая удовлетворяет условиям вложенного селекта.
Одна и таже номенклатура может быть записана несколько раз в _1SCONST видимо нужно сопоставлять по значению цены (периодического реквизина и даты изменения)
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #6 - 31. Января 2007 :: 12:35
Печать  
Вот в таком виде результаты блице к истине
Код
Выбрать все
	|SELECT
	|ТТ.Номенклатура [Номенклатура $Справочник.Номенклатура],
	|ТТ.ЦенаДо ЦенаДо,
	|ТТ.ЦенаПосле ЦенаПосле,
  |Журн.IDDOC [Док $Документ],
	|Журн.IDDocDef as Док_вид
  |FROM(
  |SELECT
	|Т.Номенклатура Номенклатура ,
	|Т.ЦенаДо ЦенаДо,
	|Т.ЦенаПосле ЦенаПосле
	|FROM(
	|SELECT
	|	СпрН.ID Номенклатура,
	|	СпрН.Descr Наименование,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата1_) ЦенаДо,
	|	$ПоследнееЗначение.Номенклатура.Цена(СпрН.ID, :Дата2_) ЦенаПосле
	|FROM
	|	$Справочник.Номенклатура СпрН) as Т
	| where (Т.ЦенаДо <> Т.ЦенаПосле)) as ТТ
	| INNER JOIN _1SCONST  Конст(nolock) on ((Конст.[OBJID] = ТТ.Номенклатура)
	| and (Конст.VALUE= Convert(CHAR(255),ТТ.ЦенаПосле)))
	//| and ((Конст.Date >= :Дата1_) AND Конст.Date <=:Дата2_~)
	| INNER JOIN _1SJourn  Журн(nolock) on Журн.[IDDOC] = Конст.DOCID
|";
 


но по каким то причинам не вся номенклатура удовлетворяющая запросу попадает в резельтирующую таблицу
да и по хорошему надо ставить проверу на дату записанного периодического реквизита, но что-то ругается Syntax error converting datetime from character string.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #7 - 31. Января 2007 :: 13:23
Печать  
Млин, как правильно условие по дате поставить?
(предпоследняя заремленная строка)
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #8 - 31. Января 2007 :: 13:38
Печать  
dimm73 писал(а) 31. Января 2007 :: 13:23:
Млин, как правильно условие по дате поставить?
(предпоследняя заремленная строка)

А у тебя база ДБФ или SQL?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #9 - 31. Января 2007 :: 13:39
Печать  
dimm73 писал(а) 31. Января 2007 :: 13:23:
Млин, как правильно условие по дате поставить?
(предпоследняя заремленная строка)

Убрать модификатор?

Запрос не решает поставленную задачу (например, если ЦенаПосле встречается в периоде несколько раз). IMHO, всё будет проще, если получать в подзапросе не цены, а row_id'ы.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #10 - 01. Февраля 2007 :: 11:56
Печать  
Подскажите как произвести сравнение дат
(Конст.Date >= :Дата1_) AND Конст.Date <=:Дата2_~) - выдает ошибку
Конст.Date в формате 01.02.07 - в формате даты
Дата2_ - 20070201
как Дата2 перевести в формат даты?

Имеется книга о построении запросов , а о преобразовании типов ничего.
Киньте ссылку на норманую книгу
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #11 - 01. Февраля 2007 :: 12:04
Печать  
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Помогите с запросом по периодическим реквизита
Ответ #12 - 02. Февраля 2007 :: 06:38
Печать  
Попытался использовать ПолучитьСтрИзДаты() в запросе вывалилось с ошибкой is not a recognized function name.
1С++ 1.8.1.6
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать