Я пытаюсь получить два разных счета в одном столбце.Два подсчета работают хорошо, когда в отдельных запросах, но я просто не уверен, как объединить их в один запрос.У меня есть две таблицы, которые DailyFieldRecord
и AB953
.DailyFieldRecord
содержит: DailyFieldRecordID
и ActivityCodeID
.Таблица AB953
содержит: DailyFieldRecordID, ItemID, and GroupID
.Count1
вернет счетчик DailyfieldrecordID's
, который содержит ActivityCodeID=387
и GroupID=260
и который НЕ имеет ItemID in (1302,1303,1305,1306)
.Count2
вернет счетчик DailyfieldrecordID's
, который содержит ActivityCodeID=387
и GroupID=260
, и который имеет ItemID in (1302,1303,1305,1306)
.Так что они похожи, но я просто не уверен, как объединить их в один запрос.Я помещаю OR в условие where между двумя ограничениями, что, как я знаю, неверно, но я просто не знаю, как это сделать.
DailyFieldRecord: AB953:
DailyFieldRecordID ActivityCodeID DailyFieldRecordID: ItemID: GroupID:
657 387 657 1305 210
888 420 657 1333 260
672 387 657 1335 260
888 1302 210
888 1336 260
672 1327 260
672 1334 260
672 1335 260
Expected Output:
Count1: Count2:
3 2
Count1 is supposed to count: Count2 is supposed to count:
672 1327 260 657 1333 260
672 1334 260 657 1335 260
672 1335 260
SELECT COUNT(ActivityCodeID) as Count1, COUNT(ActivityCodeID) As Count2
FROM AB953 ab
JOIN DailyFieldRecordID dfr on
dfr.DailyFieldRecordID=ab.DailyFieldRecordID
WHERE dfr.ActivityCodeID=387 and ab.GroupID=260 and NOT exists(
select b.DailyFieldRecordID
FROM DailyFieldRecordID b
WHERE ab.DailyFieldRecordID = b.DailyFeildRecordID AND
b.ItemID in (1302,1303,1305,1306))
OR
dfr.ActivityCodeID=387 and ab.GroupID=260 and exists(
select b.DailyFieldRecordID
FROM DailyFieldRecordID b
WHERE ab.DailyFieldRecordID = b.DailyFeildRecordID AND
b.ItemID in (1302,1303,1305,1306))