列名称无效或

时间:2016-10-27 19:59:47

标签: sql

我有以下查询

SELECT wo.workorderid "Request ID",
       aau.first_name "Requester",
       dpt.deptname "Department",
       wotodesc.fulldescription "Description",
       sereq.udf_char3 "Owner",
       sereq.udf_char2 "Comments",
       sereq.udf_char10 "KNMgmt Priority",
       std.statusname "Request Status",
       sereq.udf_char4 "Management/Ops Communication",
       sereq.udf_char5 "Charlie Updated"
FROM workorder wo
  LEFT JOIN sduser sdu ON wo.requesterid = sdu.userid
  LEFT JOIN aaauser aau ON sdu.userid = aau.user_id
  LEFT JOIN departmentdefinition dpt ON wo.deptid = dpt.deptid
  LEFT JOIN workordertodescription wotodesc ON wo.workorderid = wotodesc.workorderid
  LEFT JOIN workorderstates wos ON wo.workorderid = wos.workorderid
  LEFT JOIN statusdefinition std ON wos.statusid = std.statusid
  INNER JOIN servicereq_3001 sereq ON wo.workorderid = sereq.workorderid
WHERE (wo.isparent = '1')

我需要按以下方式排序 “请求状态”不等于已关闭 我只需要提供上个月的记录。

我尝试了一些不同的选项,但在尝试指定值WHERE dbo.WorkOrderStates.STATUSID <> "3",时收到无效的列名

我试过的其他事情提供了“多部分标识符无法绑定”

我也不确定如何按上个月排序。我对SQL编码很新,任何帮助都会有所帮助。

3 个答案:

答案 0 :(得分:1)

您正在使用别名,所以在您应该再次使用别名的情况下

  WHERE wos.STATUSID <> "3"

确保您的STATUSID是一个字符串,否则您应该使用

  WHERE wos.STATUSID <>  3

答案 1 :(得分:0)

替换

dbo.workorderstates 

wos 

因为当你给别名时你必须使用它

并用3

替换“3”

答案 2 :(得分:0)

连接表时,表必须是别名,请尝试使用别名,而不是引用其原始名称。