SQL - 希望显示 2 列组合何时具有相同数据

SQL - Looking to show when 2 columns combined have the same data

我有一个数据库 table,它有一个 Vendor_ID 列和一个 Vendor_Item 列。

Vendor_id   Vendor_item
101          111
101          111
101          123

我需要一种方法来显示何时 vendor_id 和 vendor_item 合并,如果计数大于 1 则显示。vendor_item 数字可以在那里多次只要它有不同的 vendor_id.

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

不确定 UPC 列是从何处以及如何获取的,但您可以像下面那样更改现有查询以获取所需数据

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

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

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

试试这个

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