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


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Туплю в запросе
26. Декабря 2012 :: 05:18
Печать  
Как лучше реализовать:
запрос по документам прихода (одного вида), в результате надо получить таблицу из двух колонок: Номенклатура (в табличной части)  и контрагент (поставщик) (в шапке). Поставщик должен быть из последнего прихода (может быть несколько приходов от разных поставщиков) , то есть пара номенклатура и поставщик должна быть уникальна без повторений.
Спасибо!
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #1 - 26. Декабря 2012 :: 06:18
Печать  
для sql

select
Данные.Товар,
$Док.Поставщик
from(
select
$Стр.Товар Товар,
max(j.date_time_iddoc) Позиция
from _1sjourn j (nolock)
left join $ДокументСтроки.ПН Стр (nolock) on пн.iddoc = j.iddoc
where j.iddocdef = $ВидДокумента.ПриходнаяНакладная
and j.date_time_iddoc  between :Нач and :Кон~
group by $Стр.Товар
) Данные
left join $Документ.ПН Док (nolock) on Док.iddoc = right(Данные.Позиция,9)

*исправил опечатку
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Туплю в запросе
Ответ #2 - 26. Декабря 2012 :: 06:28
Печать  
Че то ты не то написал, имхо
Улыбка

ЗЫ: наеборот надо, "максимальный"  поставщик, а не товар
ну и .. соединение по товару, а не по позиции.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #3 - 26. Декабря 2012 :: 06:57
Печать  
че то ты сдаешь, друг, стареешь наверно
перечитай еще раз
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #4 - 26. Декабря 2012 :: 06:59
Печать  
сначала определяется список номенклатуры поступившей за период и максимальная позиция поступления по каждой из номенклатур
потом по позициям определяется документ и поставщик из него
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #5 - 26. Декабря 2012 :: 07:03
Печать  
ну там ПН = ПриходнаяНакладная, думаю понятно
наверно еще проверку closed&1 = 1 надо добавить
  

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


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Туплю в запросе
Ответ #6 - 26. Декабря 2012 :: 07:08
Печать  
Благодарю
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Туплю в запросе
Ответ #7 - 26. Декабря 2012 :: 07:08
Печать  
Всё, догнал, пропустил последгнюю фразу про уникальность..
Думал ему в таком виде надо

документ
  товар  последний поставщик
  товар  последний поставщик
документ
  товар ...
  товар ...

а не просто, товар - последний поставщик

ЗЫ: с тобой на бентли не накопишь!

Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #8 - 26. Декабря 2012 :: 08:30
Печать  
(2) по моему можно left на inner заменить.
и надо еще предусмотреть случай если в накладной
один товар в нескольких строках.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Туплю в запросе
Ответ #9 - 26. Декабря 2012 :: 09:02
Печать  
Z1 писал(а) 26. Декабря 2012 :: 08:30:
(2) по моему можно left на inner заменить.
можно.
но зачем?
  

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