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


I Love YaBB 2!

Сообщений: 20
Зарегистрирован: 21. Марта 2008
Пытаюсь запрос из 1С перевести на sql
21. Марта 2008 :: 12:07
Печать  
Добрый день. Вот попросили меня вот этот запрос перевести на sql:

Период с НачДата по КонДата;
Фирма                        = Регистр.ПартииНаличие.Фирма;
Номенклатура                            = Регистр.ПартииНаличие.Номенклатура;
МОЛ                        = Регистр.ПартииНаличие.МОЛ;
Док                        = Регистр.ПартииНаличие.ТекущийДокумент;
Поставщик                  = Регистр.ПартииНаличие.Партия.Поставщик;
Количество                            = Регистр.ПартииНаличие.Количество;
СуммаРуб                  = Регистр.ПартииНаличие.СуммаРуб;
ПродСтоимость            = Регистр.ПартииНаличие.ПродСтоимость;
Функция ПечНачКол      = НачОст(Количество);
Функция ПечПрихКол = Приход(Количество);
Функция ПечРасхКол = Расход(Количество);
Функция ПечКонКол      = КонОст(Количество);
Функция Реализация = Расход(СуммаРуб);
Функция ИтогоПродажи = Расход(ПродСтоимость);   
Группировка Номенклатура Упорядочить по Номенклатура.Код;
Группировка МОЛ Без Групп;

Группировка Док;

Условие (Фирма В ВыбФирма);
Условие (Номенклатура В ВыбТовар);
Условие (МОЛ В ВыбСклад);
Условие (Поставщик В ВыбПоставщик);

документацию для начинающих прочитат, отдельные моменты понятны, но сложить все в единую картину не могу.
сейчас не могу правильно написать условие, вот с фирмой, номенклатурой и мол понятко как указать в условии, а вот как указать "Поставщика"

примерный код 

SELECT       
     Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     Рег.Фирма as [Фирма $Справочник.Фирмы],
               Рег.Партия as [Партия $Справочник.Партии],
     Sum(Рег.КоличествоКонечныйОстаток) as Количество
FROM
     $РегистрОстаткиОбороты.ПартииНаличие(, :КонДата,, ,,
               Фирма = :ВыбФирма and


     Партия.Поставщик IN (SELECT Val FROM #ВыбПоставщик)  and 


     Номенклатура IN (SELECT Val FROM #ВыбТовар),
               (Фирма,Номенклатура,Партия), (Количество)) as Рег


и вот как поставить условие на поставщика не знаю.


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


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #1 - 21. Марта 2008 :: 14:23
Печать  
Код
Выбрать все
 Партия.Поставщик IN (SELECT Val FROM #ВыбПоставщик)  and    



так не пройдет
  
Наверх
 
IP записан
 
FormatStroki
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 20
Зарегистрирован: 21. Марта 2008
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #2 - 21. Марта 2008 :: 14:24
Печать  
В этом то и засада, а как нужно правильно?
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #3 - 21. Марта 2008 :: 14:35
Печать  
необходимо приджойнить таблицу партий и установить фильтр на поле (поставщик) из этой таблицы (партий)
  
Наверх
IP записан
 
FormatStroki
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 20
Зарегистрирован: 21. Марта 2008
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #4 - 21. Марта 2008 :: 14:45
Печать  
А можно какой-нибуть пример, а то только начил изучать sql запросы...
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #5 - 21. Марта 2008 :: 14:54
Печать  
в конструкции РегистрОстаткиОбороты указываешь:

соединение:

INNER JOIN $Справочник.Партии as СпрПартии ON СпрПартииID = Партия

а в условии:

$СпрПартии.Поставщик IN (SELECT Val FROM #ВыбПоставщик)
  
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #6 - 21. Марта 2008 :: 14:57
Печать  
только ж учти если есть записи где Партия = ПустоеЗначение а тебе нужно выводить все записи, то надо писать не inner а left
  
Наверх
IP записан
 
FormatStroki
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 20
Зарегистрирован: 21. Марта 2008
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #7 - 21. Марта 2008 :: 15:05
Печать  
спасибо, сейчас буду пробовать
  
Наверх
 
IP записан
 
FormatStroki
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 20
Зарегистрирован: 21. Марта 2008
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #8 - 21. Марта 2008 :: 15:24
Печать  
Все получилось, теперь у меня есть вот такой простенький запрос:

SELECT       
     Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     Sum(Рег.КоличествоКонечныйОстаток) as Количество
FROM
     $РегистрОстаткиОбороты.ПартииНаличие(:НачДата, :КонДата,,,
     INNER JOIN $Справочник.Партии as СпрПартии ON СпрПартии.id = Партия,
   Фирма = :ВыбФирма and $СпрПартии.Поставщик IN (SELECT Val FROM #ВыбПоставщик) 
,
(Фирма,Номенклатура,Партия), (Количество)) as Рег
GROUP BY Рег.Номенклатура

а подскажите, пожалуйсто, как мне вместо конкретных номенклатурный позиций получать их него родителя?
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Пытаюсь запрос из 1С перевести на sql
Ответ #9 - 21. Марта 2008 :: 16:25
Печать  
FormatStroki писал(а) 21. Марта 2008 :: 15:24:
Все получилось, теперь у меня есть вот такой простенький запрос:

SELECT        
     Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     Sum(Рег.КоличествоКонечныйОстаток) as Количество
FROM
     $РегистрОстаткиОбороты.ПартииНаличие(:НачДата, :КонДата,,,
     INNER JOIN $Справочник.Партии as СпрПартии ON СпрПартии.id = Партия,
  Фирма = :ВыбФирма and $СпрПартии.Поставщик IN (SELECT Val FROM #ВыбПоставщик)  
,
(Фирма,Номенклатура,Партия), (Количество)) as Рег
GROUP BY Рег.Номенклатура

а подскажите, пожалуйсто, как мне вместо конкретных номенклатурный позиций получать их него родителя?


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