我想在SQL中編寫一個select語句,它將搜索數據庫中有兩個不同代碼的重複記錄。換句話說,它的僞代碼將是Select statement for duplicate record search using 2 different codes
選擇發票編號,其中m_code = J或T.這會給我的發票號碼2345兩次,一次用代碼J和曾經與代碼T.
我想在SQL中編寫一個select語句,它將搜索數據庫中有兩個不同代碼的重複記錄。換句話說,它的僞代碼將是Select statement for duplicate record search using 2 different codes
選擇發票編號,其中m_code = J或T.這會給我的發票號碼2345兩次,一次用代碼J和曾經與代碼T.
如果你正在尋找對於特定的代碼,那麼你可以使用WHERE子句過濾用HAVING和GROUP BY:
select invoice
from yourtable
where m_code in ('J', 'T')
group by invoice
having count(distinct m_code) > 1;
但是,如果你想返回,並與任何兩張發票重複m_codes
那麼你可以使用:
select invoice
from yourtable
group by invoice
having count(distinct m_code) > 1;
同時看到的SQL Fiddle with Demo查詢
重複應在發票號碼上。 – Mstwan
Select invoice_numbers,COUNT(DISTINCT m_code) as CNT
FROM TABLE where m_code in('J','T')
GROUP BY invoice_numbers
HAVING CNT >1;
謝謝輸入(你們倆)我使用了下面的腳本,並返回了2列,這是預期的,但在那裏,列中沒有數據:從lu_frgt_inv_accessorial 中選擇frgt_inv_nbr_s,accessorial_cd ) group by lu_frgt_inv_accessorial.frgt_inv_nbr_s ,lu_frgt_inv_accessorial.accessorial_cd having count(distinct frgt_inv_nbr_s)> = 1;從這段代碼我得到2個空白列FRGT_INV_NBR_S和ACCESSORIAL_CODE。我希望出現的數據應該是2125年的發票,附件_CD = CN invoice nber 2125,accessorial_CD = FR。我錯過了什麼? – Mstwan
您是否嘗試過'HAVING'? – Kermit