我有2个表,表1在erp_key列中有双重条目。
Table1
erp_key article_key
1 a1
2 a2
3 a3
3 a4
4 a5
5 a6
5 a7
6 a8
我找到了一种方法来检测具有以下查询的方法:
SELECT erp_key, Count (erp_key)
from Table1
group by erp_key
having Count (erp_key) > 1
现在我想通过使用article_key加入下表并使用'descr'。和'date'也包含在查询输出中。
Table2
descr. article_key date
a a1 3-1-2017
s a2 4-4-2017
d a3 5-4-2017
f a4 6-4-2017
g a5 7-4-2017
h a6 8-4-2017
j a7 9-4-2017
k a8 1-4-2017
我来到这个问题,我认为hower COUNT(erp_key)
是不正确的。它不计算多个erp_key条目。
Select erp_key, Table1.article_key, descr, date_, COUNT(erp_key) AS counter
From Table1
full outer join Table2
on Table2.article_key = Table1.article_key
group by erp_key, Table1.article_key, descr, date_,
having COUNT(erp_key) > 1
ORDER BY erp_key ASC
即使尝试了一天以上,我也找不到使用SQL查询执行此操作的方法。 有没有办法做到这一点?
谢谢!
答案 0 :(得分:1)
喜欢这个吗?
SELECT a.erp_key, Count (a.erp_key), b.descr. , b.date
from Table1 a, Table2 b
where a.article_key = b.article_key
group by a.erp_key
having Count (a.erp_key) > 1
答案 1 :(得分:0)
此查询将返回所有带有日期和descr的文章,其中ERP_Key大于1:
select a.erp_key,a.article_key,b.descr,b.date
from Table1 a
join (SELECT erp_key
from Table1
group by erp_key
having Count (erp_key) > 1) sub on sub.erp_key=a.erp_key
join Table2 b on a.article_key=b.article_key
以下查询可能更清楚,但效率较低:
select a.erp_key,a.article_key,b.descr,b.date
from Table1 a
join Table2 b on a.article_key=b.article_key
where a.erp_key in (SELECT erp_key
from Table1
group by erp_key
having Count (erp_key) > 1)