2016-10-27 2 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라는 이름은 별칭으로 바꾼 후에는 더 이상 사용할 수 없습니다. 이제 작업 : * sort * 또는 * filter *할까요? 정렬을 원하지만 where 절을 표시한다고 가정합니다. 그리고 "이전 달의 기록만을 제공해야합니까?"라는 말은 무엇을 의미합니까? 무엇 이전? –

답변

1

다시

WHERE wos.STATUSID <> "3" 

이 STATUSID가 문자열, 그렇지 않으면 당신은

WHERE wos.STATUSID <> 3 
0

사용하여 교체해야 있는지 확인 당신이 별칭을 사용해야합니다 귀하의 경우 조건에 너무도 별칭을 사용하는

dbo.workorderstates 

wos 

유 별칭을 줄 때 테이블을 조인 할 때, 테이블 별칭으로 스틱을 시도하는 대신 자신의 원본을 참조하는 별명이 지정되어야합니다 그것을

를 사용하고 3

0

으로 "3"를 교체해야하기 때문에 이름.