Ошибка не с именем поля, которое я считаю, а с константой varchar, которую вы ищете. Вы должны использовать одинарные кавычки, а не двойные.
Это:
a.Bus_Area_ID = b.Bus_Area_ID and b."GBU External Segment Description"= "Printing"
Должно быть так:
a.Bus_Area_ID = b.Bus_Area_ID and b.[GBU External Segment Description] = 'Printing'
Как правило, строковые значения в SQL заключаются не в двойные кавычки, а в одинарные кавычки.
Также в первой строке:
p5 <-sqlQuery(con,'SELECT a.region,a.Country,a.Qtr_ID,Net_VAT as Variable_Type,"Printing" as [External_Segment]
Вы пытаетесь вывести Printing
как постоянный результат этого запроса? Если это так, и это не имя поля, то вам также следует заключить это в '
одинарные кавычки, а не двойные. Это, вероятно, то, что предупреждает первую ошибку, которую вы видите.
Так что это становится:
p5 <-sqlQuery(con,'SELECT a.region,a.Country,a.Qtr_ID,Net_VAT as Variable_Type,'Printing' as [External_Segment]
Предыдущий комментарий к вашему вопросу о переносе имен полей с []
является правильным, вы должны использовать []
квадратные скобки, чтобы обернуть имена полей с пробелами в них.
Этот запрос должен работать:
p5 <-sqlQuery(con,'SELECT a.region,a.Country,a.Qtr_ID,Net_VAT as Variable_Type,\'Printing\' as [External_Segment]
,SUM(a.VR_Value) as Value
from
(SELECT d.region,d.Country,dt.Qtr_ID
,sum([Actuals YTD]/1000000) as VR_Value
FROM ZOOM_DATAMART.dbo.[New_BalSheet_Fact] a
inner join [dbo].[Buss_Area_Dim_V] b
on
a.Bus_Area_ID = b.Bus_Area_ID and b.[GBU External Segment Description]= \'Printing\'
inner join [dbo].[BSR_Header_GA_Dim_V] c
on
a.BSR_HEADER_GA_KEY= c.BSR_HEADER_GA_KEY and c.[Group Account Identifier] IN (1291,2150,2151,2152,2153,2154)
inner join [dbo].[Legal_Company_Dim_V] d
on a.Legal_Cmp_Key = d.Legal_Cmp_Key
inner join dbo.Date_Dim dt
on a.Date_key = dt.Date_key and dt.Max_month_Flag = 1
group by d.region,
dt.Qtr_ID
,d.Country
) a
Group BY
a.region
,a.Country
,a.Qtr_ID')
Надеюсь, это поможет.