Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Проблема что какую часть я не запущу кода всегда будет проблема в последнем символе.
"Неправильный синтаксис около конструкции"
16 окт 18, 15:09    [21705356]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
У вас ошибка в 17й строке.
16 окт 18, 15:10    [21705360]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Гавриленко Сергей Алексеевич,

то есть в 17 строке?
16 окт 18, 15:12    [21705364]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1527
Hellrage
Гавриленко Сергей Алексеевич,

то есть в 17 строке?
мало того, что нам не показали проблемные части кода, нам еще и не показали конструкцию, около кторой неправильный синтаксис. То есть мы ВСЁ должны угадать и рассказать какие ошибки и где вы сделали?
16 окт 18, 15:16    [21705371]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Sergey Sizov,
лови

if object_id('tempdb..#FilialLager') is not null drop table #FilialLager
Select  
df.FilID,
lass.LagerId,
MAX(case when dsc.TypeFormulaID in (10,14,21) then 1 else 0 end) as Ovoch,
MAX(case when dsc.TypeFormulaID in (11,13) then 1 else 0 end) as Tort,
case when MAX(isnull(ltf.[TypePrognoz],(Isnull(lfp.[TypePrognoz],
case when dsc.TypeFormulaID in (10,14,21,13,5) then 3 else (CASE WHEN df.FilID = ISNULL(@Fil_idParam59, 0) AND 
l.macroid in (13,15,16,20,21,23,26,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,77,80,81,84,87) THEN 4 
WHEN l.macroid in (13,15,16,17,20,21,23,26,27,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,75,77,80,81,84,87,88,89,105,109) THEN 2 
WHEN  @Type <> 1 THEN 2
ELSE 4 END ) end)))) in (4, 9) then 1 else 0 end as RegularSales,
MAX(isnull(ltf.[TypePrognoz],(Isnull(lfp.[TypePrognoz],
case when dsc.TypeFormulaID in (10,14,21,13,5) then 3 else (CASE WHEN df.FilID = ISNULL(@Fil_idParam59, 0) AND 
l.macroid in (13,15,16,20,21,23,26,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,77,80,81,84,87) THEN 4 
WHEN l.macroid in (13,15,16,17,20,21,23,26,27,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,75,77,80,81,84,87,88,89,105,109) THEN 2 
WHEN 1=1
and @Type <> 1 THEN 2
ELSE 4 END ) end)))) as TypePrognoz,
MAX(l.ClassID) as EKT,
@macroRegionId as macroRegionId
Into #FilialLager		
From cb.dbo.DogovorFilials df with(nolock)
JOIN cb.dbo.DogovorArticles da with(nolock) ON df.DogovorID=da.DogovorId	
JOIN cb.dbo.LagerAssortiment lass with(nolock) ON df.FilID=lass.filId and da.LagerID=lass.LagerId	
JOIN cb.dbo.Lager l with(nolock) ON lass.LagerId=l.id
JOIN cb.dbo.DogovorServiceContracts dsc with(nolock) ON df.DogovorID=dsc.DogovorID
LEFT JOIN cb.[dbo].[LagerTypeFormulaPrognozByFil] ltf with(nolock) ON ltf.[LagerId]=lass.LagerId and lass.filId=ltf.[FilID]
LEFT JOIN cb.dbo.LagerTypeFormulaPrognozManual lfp with(nolock) ON lfp.[BusinessID]=@Type and lfp.[LagerId]=lass.LagerId
Where 1=1
and lass.SAPSTATUS is null
and df.FilID = @FilID
Group By  df.FilID,  lass.LagerId


Сообщение было отредактировано: 16 окт 18, 15:21
16 окт 18, 15:17    [21705375]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Sergey Sizov,

Неправильный синтаксис около конструкции "LagerId".
то есть последняя стока
16 окт 18, 15:18    [21705377]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7768
Hellrage,

это не надо понимать буквально, ошибка где-то в синтаксическом выражении, которое заканчивается в этой позиции. Например, скобки неверно расставлены.
16 окт 18, 15:21    [21705382]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
переменные декларировать кто будет?
16 окт 18, 15:22    [21705384]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Гавриленко Сергей Алексеевич, окей

Declare @DatePrognoz datetime
DECLARE @Fil_idParam59 INT --OAB: 20171023
-- ================================================================
Declare @FilID int, @Type int, @macroRegionId int
DECLARE cFilial CURSOR FOR 
		Select ID, Type, macroRegionId From #FilialMail  --!!!
		
Open cFilial

 FETCH NEXT FROM cFilial
  INTO @FilID, @Type, @macroRegionId

WHILE @@Fetch_Status=0  
   BEGIN		
--------------------------------------------------------------------
	Print @FilID
		
		/* OAB: 20171023 #36729 */
		SET @Fil_idParam59 = 0
		SELECT @Fil_idParam59=gpl.ValueInt
		FROM cb..GlobalParams gp with(nolock)
			INNER JOIN cb..GlobalParamsLines gpl with(nolock) ON gp.idParams=gpl.idParams
		WHERE gp.ParamName = 'FIL_FourWeeksForecastRefinement' --Исключение филиалов из фильтра для 4-хнедельного прогноза
				AND gp.Enabled = 1 AND gpl.Enabled = 1
				 AND gpl.ValueInt = @FilID

if object_id('tempdb..#FilialLager') is not null drop table #FilialLager
Select  
df.FilID,
lass.LagerId,
MAX(case when dsc.TypeFormulaID in (10,14,21) then 1 else 0 end) as Ovoch,
MAX(case when dsc.TypeFormulaID in (11,13) then 1 else 0 end) as Tort,
case when MAX(isnull(ltf.[TypePrognoz],(Isnull(lfp.[TypePrognoz],
case when dsc.TypeFormulaID in (10,14,21,13,5) then 3 else (CASE WHEN df.FilID = ISNULL(@Fil_idParam59, 0) AND 
l.macroid in (13,15,16,20,21,23,26,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,77,80,81,84,87) THEN 4 
WHEN l.macroid in (13,15,16,17,20,21,23,26,27,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,75,77,80,81,84,87,88,89,105,109) THEN 2 
WHEN  @Type <> 1 THEN 2
ELSE 4 END ) end)))) in (4, 9) then 1 else 0 end as RegularSales,
MAX(isnull(ltf.[TypePrognoz],(Isnull(lfp.[TypePrognoz],
case when dsc.TypeFormulaID in (10,14,21,13,5) then 3 else (CASE WHEN df.FilID = ISNULL(@Fil_idParam59, 0) AND 
l.macroid in (13,15,16,20,21,23,26,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,77,80,81,84,87) THEN 4 
WHEN l.macroid in (13,15,16,17,20,21,23,26,27,29,35,36,37,38,39,40,41,42,43,45,49,50,51,52,53,56,62,65,67,70,73,75,77,80,81,84,87,88,89,105,109) THEN 2 
WHEN 1=1
and @Type <> 1 THEN 2
ELSE 4 END ) end)))) as TypePrognoz,
MAX(l.ClassID) as EKT,
@macroRegionId as macroRegionId
Into #FilialLager		
From cb.dbo.DogovorFilials df with(nolock)
JOIN cb.dbo.DogovorArticles da with(nolock) ON df.DogovorID=da.DogovorId	
JOIN cb.dbo.LagerAssortiment lass with(nolock) ON df.FilID=lass.filId and da.LagerID=lass.LagerId	
JOIN cb.dbo.Lager l with(nolock) ON lass.LagerId=l.id
JOIN cb.dbo.DogovorServiceContracts dsc with(nolock) ON df.DogovorID=dsc.DogovorID
LEFT JOIN cb.[dbo].[LagerTypeFormulaPrognozByFil] ltf with(nolock) ON ltf.[LagerId]=lass.LagerId and lass.filId=ltf.[FilID]
LEFT JOIN cb.dbo.LagerTypeFormulaPrognozManual lfp with(nolock) ON lfp.[BusinessID]=@Type and lfp.[LagerId]=lass.LagerId
Where 1=1
and lass.SAPSTATUS is null
and df.FilID = @FilID
Group By  df.FilID,  lass.LagerId


Модератор: Следующий неотформатированный тегом src код будет стерт на месте


Сообщение было отредактировано: 16 окт 18, 15:24
16 окт 18, 15:23    [21705387]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Hellrage,

END в конце
16 окт 18, 15:25    [21705393]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
while begin есть, где end к нему?
16 окт 18, 15:25    [21705394]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
спасибо =)
16 окт 18, 15:29    [21705402]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
iap
Member

Откуда: Москва
Сообщений: 46981
И кто же курсор двигать-то будет? Где FETCHи ??
16 окт 18, 15:30    [21705409]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1527
iap
И кто же курсор двигать-то будет? Где FETCHи ??
Да и зачем тут вообще курсор?
16 окт 18, 15:32    [21705411]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Sergey Sizov,

курсор нужен. я понял в чем проблема
16 окт 18, 15:36    [21705420]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36980
Вы задаете сложные вопросы тому, кто begin/end еще не освоил.

Сообщение было отредактировано: 16 окт 18, 15:38
16 окт 18, 15:37    [21705421]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1527
Hellrage
Sergey Sizov,

курсор нужен.
Точно? Именно курсор? Приведенный код этого не подтверждает.
16 окт 18, 15:40    [21705432]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Гавриленко Сергей Алексеевич, ну да особенно когда потерял в коде end. согласен не освоил. 1000%
16 окт 18, 17:12    [21705578]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
Hellrage
Member

Откуда:
Сообщений: 15
Sergey Sizov,
дальше по коду он нужен
16 окт 18, 17:13    [21705579]     Ответить | Цитировать Сообщить модератору
 Re: Неправильный синтаксис около конструкции  [new]
L_argo
Member

Откуда:
Сообщений: 1217
БГГ.... Я даже знаю, откуда этот чудный код.... :)

Эх...славные были времена в начале 2000-х....
16 окт 18, 17:28    [21705619]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить