-3

この SELECT を変更して、削除に使用する基準にするにはどうすればよいですか?

SELECT COUNT(empid), empid, status, deptid from tableA 
GROUP BY empid, status, deptid HAVING status is null and deptid = 5
4

4 に答える 4

2

何を削除しますか?

単にdeptId5にNULLステータスで記録する場合は、

WHERE status is NULL and DeptID = 5

それ以上のものを探しているかどうかはあまり明確ではありません...

于 2012-04-06T16:56:52.810 に答える
1

GROUP BY を使用した DELETE は機能しない可能性があります。

以下を試してみて、動作するかどうかを確認してください。

DELETE 
FROM tableA
WHERE status is null AND deptid=5
于 2012-04-06T16:58:12.123 に答える
1
DELETE FROM tableA 
WHERE status is null AND deptid = 5 
于 2012-04-06T16:58:44.040 に答える
1
Delete from tableA a, 
(SELECT COUNT(empid) as count, empid, status, deptid from tableA 
    GROUP BY empid, status, deptid HAVING status is null and deptid = 5) as b 
where a.empid = b.empid
and a.status = b.status
and a.deptid = b.deptid
and b.count > 5

そのようなものがあなたが探しているものでしょうか?カウントが 5 を超えるグループの一部であるすべてのレコードを削除します。

それ以外の場合は、実際には group by から値を削除しておらず、単純な削除を使用できます。

Delete from tableA 
where status is null 
and deptid = 5
于 2012-04-06T16:59:02.500 に答える