2017-07-15 68 views
1

以下是我拥有的示例表。我有多个ERR#一个中是错误#2比较记录并显示具有不同值的列名称

Err# ItemNo Price Company Model 
2  101  50  ABC  A12 
2  101  50  ABC  A12 
2  101  50  ABC  A13 
2  102  30  XYZ  B1C 
2  102  40  ZYZ  B1C 
2  103  80  MNO  AL5 
2  103  90  MNR  AL9 

尔#2 - 我得到一个错误消息“同一货号具有与其他列不同的值,”理想情况下不应该有相同的产品编号不同的值。

是什么意思是ItemNo 101价格是一样的,公司在所有3条记录中都是一样的,但型号不同,它有A12和A13都是错的。

每当我们有相同的产品编号有不同的价值就应该告诉我这是有differet值每项号列名

O/P应

  • 对于所有的101条记录不同型号的价值
  • 同货号为所有102条记录就应该打印为 - - 它应该是打印有不同的价格同货号,公司
  • 对于所有的103条记录就应该打印为 - 有同货号不同的价格,比较任何型号

回答

0

你可以做这样的事情:

select itemno, 
     substr((case when min(price) <> max(price) then ',price' end) || 
       (case when min(company) <> max(company) then ',company' end) || 
       (case when min(model) <> max(price) then ',model' end), 
       2) as columns_with_differences    
from t 
group by itemno; 
+0

感谢戈登,它的工作原理,但不过我想这能打印所有的记录(101 3条同样的结果),而不是只为一个第101项。另外,如果有超过50列,有什么替代方法可以轻松完成。请建议 – Puttu

+0

@Puttu。 。 。这为所有项目做了工作。如果您有许多列,请在电子表格中构建查询并复制它。 –

相关问题