これはかなり基本的かもしれませんが、ここでははるかに速くなると思いました。私はNoShowsの両方の合計の組み合わせを持っている人を排除しようとしてキャンセルしてるHAVING句のフィールドの組み合わせを除外します。
+----------+----------+---------+
| PersonID | No Shows | Cancels |
+----------+----------+---------+
| 1 | 2 | 0 |
| 1 | 5 | 1 |
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 1 | 0 |
| 3 | 0 | 0 |
| 4 | 1 | 1 |
| 4 | 3 | 2 |
| 4 | 0 | 0 |
+----------+----------+---------+
0例:として:PersonID=2
試み:
SELECT
PersonID
,SUM(NoShows) AS TotalNS
,SUM(Cancels) AS TotalCanc
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) > 0 AND SUM(Cancels) > 0
これは明らかにので、動作しません。 NoShowsまたはCancelsのいずれかが0の場合、人物の削除を開始します。例:PersonID=3
希望出力:
+--------------+----------+---------+
| PersonID | No Shows | Cancels |
+--------------+----------+---------+
| 1 | 7 | 1 |
| 3 | 1 | 0 |
| 4 | 4 | 3 |
+--------------+----------+---------+
ANDの代わりにOR? – ZLK
@ZLK私は仕事で長い一日を過ごしたと思います。 – AS91
@ G.Arima Person 3は、取り消し= 0なので削除されます。しかし、私はNoShows!以来それらをしたいです!0 0 – AS91