Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите с запросом по итогам (число прочтений - 2314 )
anko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 11. Ноября 2009
Помогите с запросом по итогам
23. Декабря 2013 :: 10:49
Печать  
Есть запрос к регистру остатков
Код
Выбрать все
	ТекстЗапросаЗаказыЗаявкиТмп = "
	|Выбрать
	|   Номенклатура [Номенклатура $Справочник.Номенклатура],
	|	ЗаказПоставщику [ЗаказПоставщику $Документ.ЗаказПоставщику],
	|	ЗаявкаПокупателя [ЗаявкаПокупателя $Документ.ЗаявкаПокупателя],
	|	КоличествоОстаток КАК Количество
	|ИЗ
	|   $РегистрОстатки.ЗаказыЗаявки(:ДатаАктуальности~,((Номенклатура В (ВЫБРАТЬ val ИЗ #СписокНоменклатуры))),,) КАК ЗаказыЗаявки
	|
	|";
 



В развернутом виде выдается как
Код
Выбрать все
SELECT
   Номенклатура [Номенклатура $Справочник.Номенклатура],
	ЗаказПоставщику [ЗаказПоставщику $Документ.ЗаказПоставщику],
	ЗаявкаПокупателя [ЗаявкаПокупателя $Документ.ЗаявкаПокупателя],
	КоличествоОстаток AS Количество
FROM
   (
	SELECT
		Номенклатура
		,ЗаявкаПокупателя
		,ЗаказПоставщику
		,SUM(КоличествоОстаток) AS КоличествоОстаток

	FROM
		(SELECT
			rg_4667.Номенклатура AS Номенклатура
			,rg_4667.ЗаявкаПокупателя AS ЗаявкаПокупателя
			,rg_4667.ЗаказПоставщику AS ЗаказПоставщику
			,rg_4667.Количество AS КоличествоОстаток

		FROM
			[РегистрИтоги.ЗаказыЗаявки] AS rg_4667
		WHERE
			rg_4667.PERIOD = '20131201'
		AND
			((rg_4667.Номенклатура IN (SELECT val FROM vt_СписокНоменклатуры)))

		UNION ALL

		SELECT
			ra_4667.Номенклатура
			,ra_4667.ЗаявкаПокупателя
			,ra_4667.ЗаказПоставщику
			,CASE WHEN ra_4667.debkred = 0 THEN -ra_4667.Количество ELSE ra_4667.Количество END

		FROM
			[Регистр.ЗаказыЗаявки] AS ra_4667
		WHERE (ra_4667.idx_DATE_TIME_IDDOC_LINENO_ACTNO >= '2013122383V468  XU9PЦБ ')
		AND (ra_4667.idx_DATE_TIME_IDDOC_LINENO_ACTNO < '20131223841BXS')
		AND
			((ra_4667.Номенклатура IN (SELECT val FROM vt_СписокНоменклатуры)))
		) AS vt_ra_4667
	GROUP BY
		Номенклатура
		,ЗаявкаПокупателя
		,ЗаказПоставщику
	HAVING (SUM(КоличествоОстаток) <> 0)

) AS ЗаказыЗаявки 



Проблема в том, что не получается получить остатки на конкретный документ, если дата документа равна дате ТА
В другие даты все нормально.
База ДБФ, Версия sqLile 1026
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Помогите с запросом по итогам
Ответ #1 - 23. Декабря 2013 :: 15:00
Печать  
Почему не передаешь конкретный документ в запрос?
  
Наверх
ICQ  
IP записан
 
anko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 11. Ноября 2009
Re: Помогите с запросом по итогам
Ответ #2 - 24. Декабря 2013 :: 08:12
Печать  
Передаю. Параметр "ДатаАктуальности" - это документ
Не срабатывает если дата ТА равна дате документа.
Тут писали, что одно время это было, но подробностей не нашел.  Смущённый
Версии компоненты SQLite и класса "ПрямойЗапрос" у меня последние
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с запросом по итогам
Ответ #3 - 24. Декабря 2013 :: 10:13
Печать  
sqLile 1026

забудь об этой версии.
Рабочая - 1024
  
Наверх
 
IP записан
 
anko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 11. Ноября 2009
Re: Помогите с запросом по итогам
Ответ #4 - 24. Декабря 2013 :: 11:51
Печать  
Попробовал на версиях  SQLite на 1024, 1023. Изменений не заметил.
Куда еще покопать?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с запросом по итогам
Ответ #5 - 24. Декабря 2013 :: 13:54
Печать  
Забить на класс, написать ручонками запрос.
  
Наверх
 
IP записан
 
anko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 11. Ноября 2009
Re: Помогите с запросом по итогам
Ответ #6 - 25. Декабря 2013 :: 10:12
Печать  
Копаю дальше
смотрю сюда (ra_4667.idx_DATE_TIME_IDDOC_LINENO_ACTNO < '20131223841BXS')

Вне зависимости от выбираемого документа, подставляемого в параметр :ДатаАктуальности,
значение в запросе не меняется.
Значение подставляется через ЗапросSQLite.Подставить("ДатаАктуальности", Док.ТекущийДокумент())

Я чего-то не понимаю?  Плачущий
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с запросом по итогам
Ответ #7 - 09. Января 2014 :: 10:04
Печать  
Код
Выбрать все
ra_4667.idx_date_time_iddoc_lineno_actno <:КонПериод~~~

Запрос.Подставлять("КонПериод",Док.ТекущийДокумент()); 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать