2017-12-01 9 views
2

C#(VS 20015)経由のSQL Server 2005。どんな考えでWHEREがうまくいかないのですか?WHEREのSQL Serverクエリエラー

SQL文は次のとおりです。

しようとしました
SELECT 
    AA003Employee.idEmployee, 
    AA001Person.LastName, AA001Person.FirstName, 
    AA017JobTitle.JobTitle, AA017JobTitle.Department, 
    AA003Employee.Disabled 
FROM 
    AA003Employee 
JOIN 
    AA001Person ON AA003Employee.idPerson = AA001Person.idPerson 
JOIN 
    AA017JobTitle ON AA003Employee.idJobTitle = AA017JobTitle.idJobTitle 
ORDER BY 
    AA001Person.LastName ASC, AA001Person.FirstName ASC, 
    AA017JobTitle.JobTitle ASC 
WHERE 
    AA003Employee.Disabled = 'N'; 

  1. それは省いたときに正常に動作します - >WHERE AA003Employee.Disabled = 'N'

  2. を私はそれを交換しようとすると、それはエラーをスローします - > " ... WHERE Disabled = 'N'";

ここ

は、エラーのスクリーンショットです:

Screenshot

+2

が '' WHERE' ORDER BY'前に、 'FROM'句の後に直接行くのSQLステートメントの下でクエリを交換してください。 –

答えて

6

あなたの問題はWHERE句の配置です。 SQLは文中の節の順序を気にします。しかし、テーブルエイリアスの使用方法も学ぶ必要があります。

SELECT e.idEmployee, p.LastName, p.FirstName, jt.JobTitle, jt.Department, e.Disabled 
FROM AA003Employee e JOIN 
    AA001Person p 
    ON e.idPerson = p.idPerson JOIN 
    AA017JobTitle jt 
    ON e.idJobTitle = jt.idJobTitle 
WHERE e.Disabled = 'N' 
ORDER BY p.LastName ASC, p.FirstName ASC, jt.JobTitle ASC; 

参照してください。クエリは書込みと読取りがはるかに簡単です。でクエリを置き換え

1

SELECT AA003Employee.idEmployee, AA001Person.LastName, AA001Person.FirstName, AA017JobTitle.JobTitle, AA017JobTitle.Department, AA003Employee.Disabled 
FROM AA003Employee 
JOIN AA001Person ON AA003Employee.idPerson=AA001Person.idPerson 
JOIN AA017JobTitle ON AA003Employee.idJobTitle=AA017JobTitle.idJobTitle 
WHERE AA003Employee.Disabled = 'N' 
ORDER BY AA001Person.LastName ASC, AA001Person.FirstName ASC, AA017JobTitle.JobTitle ASC 
0

SELECT 
    AA003Employee.idEmployee, 
    AA001Person.LastName, 
    AA001Person.FirstName, 
    AA017JobTitle.JobTitle, 
    AA017JobTitle.Department, 
    AA003Employee.Disabled 

FROM AA003Employee 

JOIN AA001Person ON AA003Employee.idPerson=AA001Person.idPerson 
JOIN AA017JobTitle ON AA003Employee.idJobTitle=AA017JobTitle.idJobTitle 

WHERE AA003Employee.Disabled = 'N'; 

ORDER BY AA001Person.LastName ASC, AA001Person.FirstName ASC, AA017JobTitle.JobTitle ASC