2016-10-27 7 views
0

私は次のクエリ無効な列名または

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コーディングにかなり新しいですし、どんな援助も役に立ちます。

+2

'" 3 "'は値ではない識別子です。 statusidが数字の場合は 'statusid <> 3'を使用してください。 –

+1

dbo.workorderstatesをwosに置き換えてください。エイリアスを使用して3を3で置き換える必要があります。 – Hadi

+0

あなたのミスは何ですか?二重引用符はエイリアス、一重引用符は文字列、数字は引用符を一切持たない。また、別名で置き換えた後は、workorderstatesという名前を使用することはできません。今すぐに:*ソート*または*フィルタ*したいですか?あなたはソートしたいと言っていますが、where句を表示します。 「前月の記録のみを提供する必要がある」とはどういう意味ですか?何の前に? –

答えて

1

もう一度

WHERE wos.STATUSID <> "3" 

は、あなたのSTATUSIDが文字列がそうでなければ、あなたが

WHERE wos.STATUSID <> 3 
0

使用取り替えるべきであることを確認してくださいエイリアスを使用する必要があり、あなたのWHERE条件でもそうエイリアスを使用している

dbo.workorderstates 

wos 

uはエイリアスを与えたときに、テーブルを結合するときあなたは、テーブルは別名でスティックを試してみてください、代わりに元のを参照して、エイリアスにする必要があり、それを

を使用し、3

0

で「3」を置き換える必要がありますので、名前。