从一些旧代码中获取查询,我正在尝试使其工作.每次我提交查询时都会收到错误:
错误代码207,SQL状态S0001:无效的列名称"等级"
码:
SELECT
COUNT(*) AS PieceCount
,shifttimes.shiftid AS ShiftId
,specienames.NameText AS Specie
,gradenames.NameText AS Grade
,DryerNum
,CreatedLocal
FROM
sheets, shifttimes, Specienames, GradeNames
WHERE
sheets.ShiftIndex = shifttimes.ShiftIndex
AND sheets.SpecieNameIndex = specienames.NameIndex
AND sheets.gradenameindex = gradenames.NameIndex
AND CreatedLocal >= '2015-04-01'
AND CreatedLocal < '2015-06-01'
GROUP BY
ShiftId, Grade, DryerNum, Specie
Run Code Online (Sandbox Code Playgroud)
对于错误,我认为你应该改变
GROUP BY ShiftId
,Grade
,DryerNum
,Specie
Run Code Online (Sandbox Code Playgroud)
至
GROUP BY shifttimes.shiftid
,gradenames.NameText
,DryerNum
,specienames.NameText
Run Code Online (Sandbox Code Playgroud)
注意:
在您的选择,CreatedLocal中group by,您必须将其从选择中删除或包含在您的选择中group by
建议:
尝试使用Alias和Implicit连接(在from子句中有两个表)是一种不推荐使用的语法,建议切换到现代的显式语法:
SELECT COUNT(*) AS PieceCount
,ST.shiftid AS ShiftId
,SN.NameText AS Specie
,GN.NameText AS Grade
,DryerNum
FROM
sheets S
inner join shifttimes ST
ON S.ShiftIndex = ST.ShiftIndex
inner join Specienames SN
ON S.SpecieNameIndex = SN.NameIndex
inner join GradeNames GN
ON S.gradenameindex = GN.NameIndex
WHERE
CreatedLocal >= '2015-04-01'
AND CreatedLocal < '2015-06-01'
GROUP BY
ST.shiftid
,GN.NameText
,DryerNum
,SN.NameText
Run Code Online (Sandbox Code Playgroud)