SQL - 显示何时合并的2列具有相同的数据

时间:2015-09-11 20:04:07

标签: sql duplicates sybase

我有一个包含Vendor_ID列和Vendor_Item列的数据库表。

Vendor_id   Vendor_item
101          111
101          111
101          123

我需要一种方法来显示vendor_id和vendor_item何时合并,显示计数是否大于1.只要具有不同的vendor_id,vendor_item数就可以存在多次。

Vendor_id   Vendor_item
101          111       
101          111       

我已完成以下操作,但它只显示结果超过1,并且不会显示上述示例中的两个记录。

SELECT vendor_id,vendor_item
From Inventory_master 
group by vendor_id,vendor_item
having count(*) >1

如果可能的话,我想要一种方法来为结果添加另一列(UPC)。我正在处理的系统可以使用UPC导回到系统中,这样我就可以修复重复的内容。

Vendor_id   Vendor_item     UPC
101          111            456 
101          111            789

3 个答案:

答案 0 :(得分:0)

不确定UPC列的位置和获取方式,但您可以更改现有查询,如下所示,以获取所需数据

SELECT * FROM Inventory_master WHERE vendor_item IN (
SELECT vendor_item 
From Inventory_master 
group by vendor_item 
having count(vendor_item) >1);

答案 1 :(得分:0)

您可以使用子查询,然后JOIN回到inventory_master表:

SELECT im.*
FROM
  Inventory_master im INNER JOIN (
    SELECT vendor_id, vendor_item
    From Inventory_master 
    group by vendor_id,vendor_item
    having count(*) >1) s
  ON im.vendor_id = s.vendor_id AND im.vendor_item = s.vendor_item

答案 2 :(得分:0)

试试这个

select * from(
select vendor_id,vendor_item, count(*) over (partition by vendor_id) cnt
from Inventory_master
) where cnt>1