Переключение на Главную Страницу Страницы: 1 ... 3 4 [5]  ОтправитьПечать
Очень популярная тема (более 25 ответов) ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !? (число прочтений - 20738 )
GandolF
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 06. Марта 2013
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #60 - 18. Апреля 2013 :: 05:55
Печать  
Eprst писал(а) 17. Апреля 2013 :: 18:48:
Ты не понял,смотри внимательнее:

FROM
|      $Документ.РеализацияЗаМесяц AS Док (NOLOCK)
|LEFT OUTER JOIN $Справочник.Клиенты AS Справочник_Клиенты (NOLOCK)  ON ((Справочник_Клиенты.ID) = $Док.Клиент)
|      LEFT OUTER JOIN $Справочник.ПунктыРазгрузки AS СпрПР (NOLOCK)  ON ((СпрПР.ID) = $Док.ПунктРазгрузки)
|      INNER JOIN $ДокументСтроки.РеализацияЗаМесяц AS Док (NOLOCK)  ON (ДокументСтроки

тут у тебя совпадающий алияс

Вотчерт, вижу! спасибо
  

Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
Наверх
 
IP записан
 
GandolF
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 06. Марта 2013
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #61 - 18. Апреля 2013 :: 06:32
Печать  
Неправильный синтаксис около конструкции "Жур".
Подскажите, плиз, где опять нахимичил ?
Вот отладка:
Цитата:
SELECT
     CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) AS Период1,
     Док.sp8949 AS [Клиент $Справочник.Клиенты],
     Док.sp8950 AS [ПунктРазгрузки $Справочник.ПунктыРазгрузки],
     СпрТов.sp74 AS [ЕдиницаИз $Справочник.ЕдиницыИзмерений],
     СпрТов.sp4492 AS [КоэфКальк $Число],
     ДокументСтроки_.sp8955 AS [Количество $Число],
     СпрР.sp8291 AS [Регион $Справочник.Регион],
     СпрПР.sp8145 AS [Агент $Справочник.Агенты],
     СпрМ.sp8293 AS [Менеджер $Справочник.Менеджеры],
     СпрНач.sp8292 AS [НачОтд $Справочник.НачРегОСб]
FROM
     dh8959 AS Док (NOLOCK)
     LEFT OUTER JOIN sc2760 AS СпрПР_2 (NOLOCK)  ON ((СпрПР_2.ID) = Док.sp8950)
           LEFT OUTER JOIN sc8152 AS СпрМ_1 (NOLOCK)  ON ((СпрМ_1.ID) = СпрПР_2.sp8145)
                 LEFT OUTER JOIN sc4938 AS СпрНач (NOLOCK)  ON ((СпрНач.ID) = СпрМ_1.sp8293)
     LEFT OUTER JOIN sc2760 AS СпрПР_3 (NOLOCK)  ON ((СпрПР_3.ID) = Док.sp8950)
     LEFT OUTER JOIN sc2760 AS СпрПР_1 (NOLOCK)  ON ((СпрПР_1.ID) = Док.sp8950)
           LEFT OUTER JOIN sc8152 AS СпрМ_2 (NOLOCK)  ON ((СпрМ_2.ID) = СпрПР_1.sp8145)
     LEFT OUTER JOIN sc2760 AS СпрПР_4 (NOLOCK)  ON ((СпрПР_4.ID) = Док.sp8950)
           LEFT OUTER JOIN sc8152 AS СпрМ_3 (NOLOCK)  ON ((СпрМ_3.ID) = СпрПР_4.sp8145)
                 LEFT OUTER JOIN sc4938 AS СпрНач_1 (NOLOCK)  ON ((СпрНач_1.ID) = СпрМ_3.sp8293)
     LEFT OUTER JOIN sc2760 AS Справочник_ПунктыРазгрузки_1_6 (NOLOCK)  ON ((Справочник_ПунктыРазгрузки_1_6.ID) = Док.sp8950)
           LEFT OUTER JOIN sc8152 AS СпрМ (NOLOCK)  ON ((СпрМ.ID) = Справочник_ПунктыРазгрузки_1_6.sp8145)
     LEFT OUTER JOIN sc2760 AS СпрР (NOLOCK)  ON ((СпрР.ID) = Док.sp8950)
     LEFT OUTER JOIN sc2760 AS СпрПР (NOLOCK)  ON ((СпрПР.ID) = Док.sp8950)
     INNER JOIN _1sJourn AS Жур (NOLOCK)  ON (Жур.IDDoc = Док.IDDoc)
                       Жур.Date_Time_IDDoc BETWEEN '20120101' AND '20120131Z' AND
                       Жур.Closed & 1 = 1
     INNER JOIN dt8959 AS ДокументСтроки_ (NOLOCK)  ON (ДокументСтроки_.IDDoc = Жур.IDDoc)
  INNER JOIN sc33 AS СпрТов (NOLOCK)  ON ((СпрТов.ID) = ДокументСтроки_.sp8951)

WHERE
     1=1
AND      Док.sp8949 in (select Val from #tmp_1)
     GROUP BY
     СпрНач.sp8292,СпрМ.sp8293,СпрПР.sp8145,СпрР.sp8291,Док.sp8949,Док.sp8950 WITH ROLLUP
ORDER BY
     СпрНач.sp8292,
     СпрМ.sp8293,
     СпрПР.sp8145,
     СпрР.sp8291,
     Док.sp8949,
     Док.sp8950


ЗЫ: СпрПР_1 , СпрМ_1 и прочее - не лишние, всё это участвует в условиях
  

Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #62 - 18. Апреля 2013 :: 06:49
Печать  
  INNER JOIN _1sJourn AS Жур (NOLOCK)  ON (Жур.IDDoc = Док.IDDoc)  AND
                      Жур.Date_Time_IDDoc BETWEEN '20120101' AND '20120131Z' AND
пропущен and
  
Наверх
 
IP записан
 
GandolF
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 06. Марта 2013
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #63 - 18. Апреля 2013 :: 06:54
Печать  
Eprst писал(а) 18. Апреля 2013 :: 06:49:
 INNER JOIN _1sJourn AS Жур (NOLOCK)  ON (Жур.IDDoc = Док.IDDoc)  AND
                      Жур.Date_Time_IDDoc BETWEEN '20120101' AND '20120131Z' AND
пропущен and

СПАСИБО  Очень довольный

п.с. у меня закончилось кофе и сигареты...
  

Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
Наверх
 
IP записан
 
GandolF
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 06. Марта 2013
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #64 - 18. Апреля 2013 :: 07:04
Печать  
GandolF писал(а) 17. Апреля 2013 :: 14:06:
Шоб в GROUP BY не попала должна быть агрегатная функция, а как быть с этим:
Код
Выбрать все
|	$СпрТов.БазоваяЕдиница AS [ЕдиницаИз $Справочник.ЕдиницыИзмерений],
	|	$СпрТов.КоэфКальк AS [КоэфКальк $Число],";
	Если (Флаг=1) или (Флаг=3) или (флаг=5) Тогда
		Если Пар=2 Тогда
			ТекстЗапроса= ТекстЗапроса+"
			|	$ДокументСтроки_.КоличествоСВозврат AS [Количество $Число],";
		Иначе
			ТекстЗапроса= ТекстЗапроса+"
			|	$ДокументСтроки_.Количество AS [Количество $Число],";
		КонецЕсли;
	Иначе
		 ТекстЗапроса= ТекстЗапроса+"
		 | case when $СпрТов.БазоваяЕдиница=:ЕдинИзм then $ДокументСтроки_.Количество else round($ДокументСтроки_.Количество * $СпрТов.КоэфКальк, 2) end ";
	КонецЕсли;
 


ЕдиницаИз , КоэфКальк - играют второстепенную роль, и без них нельзя. Следующей ошибкой пойдет Количество, которое SUM() тоже ни к чему ???

Возвращаясь к данному вопросу, как же всё таки обойти такую ситуёвину ?
  

Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #65 - 18. Апреля 2013 :: 08:56
Печать  
Нужен весь текст запроса
  
Наверх
 
IP записан
 
GandolF
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 06. Марта 2013
Re: ТЗ = Запрос.ВыполнитьИнструкцию(тЗапроса): ЧТО ДАЛЬШЕ !?
Ответ #66 - 18. Апреля 2013 :: 14:00
Печать  
А нужно-то было всего лишь
Код
Выбрать все
|GROUP BY
зки WITH ROLLUP 


"...и вот она красивая, на праздник к нам пришла..."  Очень довольный
  

Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 
ОтправитьПечать