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
我有一个数据库 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