我正在構建一個數據庫的報告,我需要根據公司,作業和日期確定「第一次掃描」的數量。計算組內的最小記錄數
掃描表可以包含同一項目的多個掃描,但是我只想將原始掃描包括在我的COUNT中,該掃描只能被識別爲與特定項目匹配的最早日期的掃描。
我在這第一次嘗試:
SELECT
_item_detail.job_id,
_item_group.group_id,
_scan.company_id,
DATE(scan_date_time) as scan_date,
COUNT(1)
FROM _scan
INNER JOIN _item_detail ON _item_detail.company_id = _scan.company_id
AND
_item_detail.serial_number = _scan.serial_number
INNER JOIN _item_group ON _item_group.group_id = _item_detail.group_id
WHERE _item_detail.job_id = '0326FCM' AND _scan.company_id = '152345' AND _item_group.group_id = 13
GROUP BY
_item_detail.job_id,
_item_group.group_id,
_scan.company_id, scan_date -- first_scan_count
HAVING min(scan_date_time);
這是給我的不正確的結果,但(約3倍太多)。我假設這是因爲MIN記錄正在爲每個日期重新計算,所以如果在第1天發現最小值,它也可能在第3天被發現並再次計數。
如何修改我的查詢以獲得所需的結果?
你能交一些示例數據和所需的o/p – Teja 2012-04-06 16:30:39