我有一个用于管理方案贡献的表格,其中包含MNUMBER
,MONTH
,YEAR
,CONTR_AMOUNT
和RECEIPT_DATE
等关键字段。
此方案允许成员每月捐款一次以上。最近我发现此表中有很多重复的值,现在我想摆脱它们。我有一个备用表,没有其他条目我想比较这两个表并标记其他表。
我尝试过
select * from table1
minus table2
union
select * from table 2
minus
select * from table1
在许多网站中都建议使用,但不起作用。
答案 0 :(得分:0)
两张桌子到一张桌子
SELECT * FROM CONTRIBUTION;
+---------+-------+------+--------------+--------------+
| MNUMBER | MONTH | YEAR | CONTR_AMOUNT | RECEIPT_DATE |
+---------+-------+------+--------------+--------------+
| 1001 | 8 | 2020 | 1200 | 2020-08-04 |
| 1001 | 8 | 2020 | 1500 | 2020-08-20 |
| 1001 | 8 | 2020 | 2200 | 2020-08-24 |
| 1001 | 8 | 2020 | 1100 | 2020-08-28 |
| 1001 | 8 | 2020 | 1100 | 2020-08-28 |
| 1002 | 8 | 2020 | 1300 | 2020-08-01 |
| 1003 | 8 | 2020 | 1300 | 2020-08-12 |
| 1004 | 8 | 2020 | 2200 | 2020-08-18 |
| 1004 | 8 | 2020 | 1600 | 2020-08-19 |
| 1005 | 8 | 2020 | 1600 | 2020-08-21 |
+---------+-------+------+--------------+--------------+
| 1001 | 8 | 2020 | 1100 | 2020-08-28 |
| 1001 | 8 | 2020 | 1100 | 2020-08-28 |
select MNUMBER,CONTR_AMOUNT,RECEIPT_DATE, count(*) from CONTRIBUTION group by MNUMBER,CONTR_AMOUNT,RECEIPT_DATE having count(*) > 1;
+---------+--------------+--------------+----------+
| MNUMBER | CONTR_AMOUNT | RECEIPT_DATE | count(*) |
+---------+--------------+--------------+----------+
| 1001 | 1100 | 2020-08-28 | 2 |
+---------+--------------+--------------+----------+