SQL查询列名指定多次错误

2020-09-16 01:29发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家

我正在尝试通过SQL查询从2个数据库中获取JE行详细信息,并且需要显示Division和Region的科目名称。 我的问题在于,在我的查询中,这些字段是T3。[Name]和T4。[Name]。 当我在查询末尾将它们组合为DataT_1时。[名称]会给我这个错误。

我简化了查询以解决此问题...

我认为是因为它无法再区分2个[名称]字段.....

最欢迎您的见识。

与DataT AS
 (选择" ST" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]


 来自Inguran.dbo.OACT T0内联接
                                Inguran.dbo.JDT1 T1开启T0.AcctCode = T1.Account INNER JOIN
                                Inguran.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 Inguran.dbo.OASC T3在T0.Segment_1 = T3.Code右外连接上
 Inguran.dbo.OASC T4在T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)

                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 全联盟


 选择" STCAN" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]


 从ST_Canada.dbo.OACT T0内部联接
                                ST_Canada.dbo.JDT1 T1 ON T0.AcctCode = T1.Account INNER JOIN
                                ST_Canada.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 ST_Canada.dbo.OASC T3开启T0.Segment_1 = T3。代码RIGHT OUTER JOIN
 ST_Canada.dbo.OASC T4开启T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)


                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 ),




 Comp AS
    
 (选择" ST" AS公司
     全联盟
  选择
  " STCAN" AS公司)






 SELECT Comp_1.Company,
 DataT_1。[TransID],
 DataT_1.RefDate,
 (年份(DataT_1.RefDate))作为"发布年份",
 (月(DataT_1.RefDate))作为"发布月",
 DataT_1.FormatCode,
 DataT_1。[名称]
    从Comp AS Comp_1左外联接
                 DataT AS DataT_1 ON Comp_1.Company = DataT_1.Company

 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家

我正在尝试通过SQL查询从2个数据库中获取JE行详细信息,并且需要显示Division和Region的科目名称。 我的问题在于,在我的查询中,这些字段是T3。[Name]和T4。[Name]。 当我在查询末尾将它们组合为DataT_1时。[名称]会给我这个错误。

我简化了查询以解决此问题...

我认为是因为它无法再区分2个[名称]字段.....

最欢迎您的见识。

与DataT AS
 (选择" ST" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]


 来自Inguran.dbo.OACT T0内联接
                                Inguran.dbo.JDT1 T1开启T0.AcctCode = T1.Account INNER JOIN
                                Inguran.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 Inguran.dbo.OASC T3在T0.Segment_1 = T3.Code右外连接上
 Inguran.dbo.OASC T4在T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)

                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 全联盟


 选择" STCAN" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]


 从ST_Canada.dbo.OACT T0内部联接
                                ST_Canada.dbo.JDT1 T1 ON T0.AcctCode = T1.Account INNER JOIN
                                ST_Canada.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 ST_Canada.dbo.OASC T3开启T0.Segment_1 = T3。代码RIGHT OUTER JOIN
 ST_Canada.dbo.OASC T4开启T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)


                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 ),




 Comp AS
    
 (选择" ST" AS公司
     全联盟
  选择
  " STCAN" AS公司)






 SELECT Comp_1.Company,
 DataT_1。[TransID],
 DataT_1.RefDate,
 (年份(DataT_1.RefDate))作为"发布年份",
 (月(DataT_1.RefDate))作为"发布月",
 DataT_1.FormatCode,
 DataT_1。[名称]
    从Comp AS Comp_1左外联接
                 DataT AS DataT_1 ON Comp_1.Company = DataT_1.Company

 
付费偷看设置
发送
1条回答
bbpeas
1楼 · 2020-09-16 01:45.采纳回答

最有可能的问题是,您在CTE中为2列使用了相同的名称。 尝试为您的列设置别名,例如:

使用DataT(您的别名)AS(...)

然后在您的选择中按别名查询

这对我有用:

与DataT(公司,TransId,RefDate,FormatCode,Name1,Name2)AS
 (选择" ST" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]




 来自SBODemoGB.dbo.OACT T0内部联接
                                SBODemoGB.dbo.JDT1 T1 ON T0.AcctCode = T1.Account INNER JOIN
                                SBODemoGB.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 SBODemoGB.dbo.OASC T3在T0.Segment_1 = T3。代码RIGHT OUTER JOIN
 SBODemoGB.dbo.OASC T4在T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)

                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 全联盟




 选择" STCAN" AS公司,
 T2。[TransID],
 T2.RefDate,
 T0.FormatCode,
 T3。[名称],
 T4。[名称]




 来自SBODemoUS.dbo.OACT T0内部联接
                                SBODemoUS.dbo.JDT1 T1 ON T0.AcctCode = T1.Account INNER JOIN
                                SBODemoUS.dbo.OJDT T2 ON T1.TransId = T2.TransId右外连接
 SBODemoUS.dbo.OASC T3在T0.Segment_1 = T3。代码RIGHT OUTER JOIN
 SBODemoUS.dbo.OASC T4在T0.Segment_2 = T4.Code

                      在哪里(T1。借记<> T1。信用)
 AND T2.RefDate介于'01 -01-2018'和'01 -10-2018'之间
 AND(T3.SegmentId = 1)
 AND(T4.SegmentId = 2)


                      通过...分组
 T2。[TransID],T2.RefDate,T0.FormatCode,T3。[名称],T4。[名称]
 ),








 Comp AS
    
 (选择" ST" AS公司
     全联盟
  选择
  " STCAN" AS公司)












 SELECT Comp_1.Company,
 DataT_1。[TransID],
 DataT_1.RefDate,
 (年份(DataT_1.RefDate))作为"发布年份",
 (月(DataT_1.RefDate))作为"发布月",
 DataT_1.FormatCode,
 DataT_1.Name1
    从Comp AS Comp_1左外联接
                 DataT AS DataT_1 ON Comp_1.Company = DataT_1.Company
 

一周热门 更多>