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


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Помогите с запросом!
13. Февраля 2011 :: 19:44
Печать  
Доброго времени суток.
В общем такая тех задача - есть приходная накладная и в её табличной части есть колонка с доп кодом товара, Нужно получить продажи товаров с колонкой этих доп кодов. Как понимаю нужно сцепить РН с Партиями и потом выловить приходный документ, только вот реализировать запрос не получается - ибо опыта мало.
Буду благодарен помощи! Заранее спасибо
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите с запросом!
Ответ #1 - 14. Февраля 2011 :: 06:02
Печать  
Привели точные идентификаторы документа и реквизитов Товар, доп. код, количество
  
Наверх
IP записан
 
elemenrad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #2 - 14. Февраля 2011 :: 06:11
Печать  
Документ - РасходнаяНакладная
Товар - ТМЦ
допкод - _код
количество - кво
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите с запросом!
Ответ #3 - 14. Февраля 2011 :: 06:16
Печать  
База в формате SQL?
  
Наверх
IP записан
 
elemenrad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #4 - 14. Февраля 2011 :: 06:30
Печать  
Да, 2005 скуль
  
Наверх
 
IP записан
 
elemenrad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #5 - 14. Февраля 2011 :: 08:22
Печать  
подумал и родился код запроса
|Select $рнСтроки.Кво [Кво $Число]
|   (Select $пнСтроки._код from $ДокументСтроки.Т_ПриходнаяНакладная  as пнСтроки
|           where   $пнСтроки.IDDoc   =   (Select   $рег.ПрихДокумент   From
|$Регистр.ПартииТоваров  as  рег Where (пнСтроки.IDDoc = рег.IDDOC) and
|(рнСтроки.lineno_ = рег.lineno_) and (пнСтроки.lineno_ = рег.lineno_))) [МРДР $Справочник._код]
|

проверить щас возможности нет так что прошу вас товарищи подсказать недочёты. Заранее - благодарен
  
Наверх
 
IP записан
 
elemenrad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #6 - 14. Февраля 2011 :: 18:57
Печать  
итак предложенный мною запрос возвращает пустую таблицу (((
у кого какие мысли - хелп!Улыбка
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите с запросом!
Ответ #7 - 15. Февраля 2011 :: 07:40
Печать  
Код
Выбрать все
	|Select
	| $РегПарт.Количество as Количество
	|,$ДокСтрокиПрих._код as ДопКод
	|From
	| $Регистр.ПартииНаличие as РегПарт with (nolock)
	|inner join
	| _1sjourn as Журн with (nolock) ON
	|		(Журн.IDDOC = РегПарт.IDDOC)
	|	and (Журн.Closed&1 = 1)
	|	and (Журн.Date_Time_Iddoc BETWEEN :НачДата and :КонДата~)
	|	and (Журн.IDDOCDEF = $ВидДокумента.РасходнаяНакладная)
	|left join
	| $Справочник.Партии as СпрПарт with (nolock) ON
	|		($РегПарт.Партия = СпрПарт.ID)
	|left join
	| $ДокументСтроки.ПриходнаяНакладная as ДокСтрокиПрих with (nolock) ON
	|		(RIGHT($СпрПарт.ПриходныйДокумент,9) = ДокСтрокиПрих.IDDOC) and (СпрПарт.ParentEx = $ДокСтрокиПрих.Товар)
 

  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с запросом!
Ответ #8 - 15. Февраля 2011 :: 07:51
Печать  
and (Журн.Closed&1 = 1)

эт явно лишнее..
Улыбка
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите с запросом!
Ответ #9 - 15. Февраля 2011 :: 09:13
Печать  
да
and (Журн.Closed&1 = 1)
можно убрать

а если еще ON (Журн.IDDOC = РегПарт.IDDOC)
заменить на ON (right(Журн.Date_Time_Iddoc,9) = РегПарт.IDDOC)
то по _1sjourn не будет bookmark lookup, что есть очень неплохо
(исключительно для данного текста запроса)
  

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


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #10 - 16. Февраля 2011 :: 06:58
Печать  
спасибо откликнувшимся, сегодня проверю
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Помогите с запросом!
Ответ #11 - 17. Февраля 2011 :: 07:01
Печать  
trad писал(а) 15. Февраля 2011 :: 09:13:
то по _1sjourn не будет bookmark lookup, что есть очень неплохо
(исключительно для данного текста запроса)


Можешь пояснить подробнее?


ЗЫ а у регистра партий точно нет галки "быстрый отбор движений"?
Если есть - джойн журнала не нужен в принципе
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Помогите с запросом!
Ответ #12 - 17. Февраля 2011 :: 11:01
Печать  
Satans Claws писал(а) 17. Февраля 2011 :: 07:01:
Можешь пояснить подробнее?

http://www.sql.ru/articles/mssql/2006/121502BookmarkLookup.shtml

В нашем случае, если в запросе оставить только поля IDDOCDEF и DATE_TIME_IDDOC из таблицы _1SJOURN, то сервер будет читать только индекс DOCTYPE, и обращаться к самой таблице за другими полями не потребуется.
  

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


1C++ rocks!

Сообщений: 32
Зарегистрирован: 25. Февраля 2010
Re: Помогите с запросом!
Ответ #13 - 18. Февраля 2011 :: 08:24
Печать  
запрос не возвращает _допкод, "партия" в регистре партий у меня нет. вот перевайал немного запрос но _допкод он так и не выдаёт  Злой

|Select
     | $РегПарт.ОстатокТовара as Количество
     |,$ДокСтрокиПрих._код as ДопКод
     |From
     | $Регистр.ПартииТоваров as РегПарт with (nolock)
     |inner join
     |_1SJOURN as Журн with (nolock) ON
     |            (Журн.IDDOC = РегПарт.IDDOC)
     |      and (Журн.Closed&1 = 1)
     |      and (Журн.Date_Time_Iddoc BETWEEN :НачДата and :КонДата~)
     |      and (Журн.IDDOCDEF = $ВидДокумента.Т_РасходнаяНакладная)
     |left join
     | $Справочник.Партии as СпрПарт with (nolock) ON
     |            ($РегПарт.Поставка= $СпрПарт.Док)
     |left join
     | $ДокументСтроки.Т_ПриходнаяНакладная as ДокСтрокиПрих with (nolock) ON
     |            (RIGHT($СпрПарт.Док,9) = ДокСтрокиПрих.IDDOC) and (СпрПарт.PARENTEXT = $ДокСтрокиПрих.Товар )
    |";
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать