2
delete  a.Employee_LastName, a.Employee_Firstname 
FROM    EMPLOYEE a JOIN DEPARTMENT b on a.Department_ID = b.Department_ID 
where b.Department_Name='Sales' 
Group by a.Employee_LastName, a.Employee_Firstname, b.Department_Name

私が間違っていることを説明できますか?エラー(SQL Server 2008の場合):メッセージ102、レベル15、状態1、行1'、'の近くの構文が正しくありません。

4

6 に答える 6

3

削除は行全体を削除するためのものです。フィールドを空にしないでください(したがって、列名はサポートされておらず、グループ化もされていません

それで

DELETE EMPLOYEE
FROM   EMPLOYEE a JOIN DEPARTMENT b ON a.Department_ID = b.Department_ID 
WHERE  b.Department_Name = 'Sales' 

レコードを編集したい場合は、UPDATE

于 2012-12-19T01:58:53.280 に答える
1

「削除」の後には、個々の列ではなく行を続ける必要があります。やったほうがいい:

delete a 
FROM    EMPLOYEE a JOIN DEPARTMENT b on a.Department_ID = b.Department_ID 
where b.Department_Name='Sales' 
Group by a.Employee_LastName, a.Employee_Firstname, b.Department_Name
于 2012-12-19T01:58:42.673 に答える
1

削除ステートメントで列を指定することはできません。する必要がありますDELETE FROM <tablename>。また、結合を使用して削除する場合は、削除するテーブルを指定する必要があります。だから、次のようなもの:

DELETE FROM a FROM <tablename> a JOIN <othertable> b ON a.<col> = b.<col>

于 2012-12-19T01:59:38.867 に答える
0

DELETEは行レベルで機能するため、SQLServerは列が指定されていると文句を言います。

DELETEの構文ページは次のとおりです。http: //msdn.microsoft.com/en-us/library/ms189835.aspx

これらの列の値をクリアしようとしているだけの場合は、UPDATEステートメントを使用する必要があります:http: //msdn.microsoft.com/en-us/library/aa260662 (v = sql.80).aspx

そのJOINおよびWHERE句に基づいて行を削除する場合は、必要なすべての行を取得するために、サブクエリを使用してDELETEステートメントを作成する必要があります。

于 2012-12-19T02:01:13.837 に答える
0

updateではない列から値を削除しようとしていると思いますdeleteupdate以下のクエリを使用します。

    update a
    set a.Employee_LastName = null,
          a.Employee_Firstname = null
    from EMPLOYEE a INNER JOIN DEPARTMENT b
    ON a.Department_ID = b.Department_ID
    where b.Department_Name='Sales' 

このクエリは、部門 内のすべての従業員の値(nullに設定)と列を削除しますEmployee_FirstnameEmployee_LastNameSales

于 2012-12-19T02:06:15.400 に答える
0

基本的な構文は、where条件から削除です

from table_nameは、要件に応じて任意のサブクエリを作成できる場所です。

于 2013-05-27T11:50:05.040 に答える