比较前两行,识别同一表中值不同的列

  • 本文关键字:识别 两行 比较 sql sql-server tsql
  • 更新时间 :
  • 英文 :


我有一个只有几列的表,该表包含具有相同值的多行(仅适用于几个字段)。我附上我的表格。

Id  EmpName ProjectName ChargeDesc  CostCenter  Jan Feb Mar Apr May Jun Jul 
32  2487    1386           124030   017N         0   0  0   0   0   3   0   
33  2487    1386           124030   017N         0   0  0   0   0   3   3   

就像上面的图片一样,这是我的要求。

我想获得前2行,其中条件如下(empname, projname, chargedesc, costcenter),并创建日期为desc。

这里我想比较这两行,找出列与值的差异。

所以在上面的例子中,所有字段都是相同的值,除了七月份的列。所以我想输出像Jul列,值为3。

这里我使用SQL Server 2019版本

您可以取消pivot和聚合:

select empname, projname, chargedesc, costcenter, mon,
min(val), max(val)
from t cross apply
(values ('Jan', jan), ('Feb', feb), . . . 
) v(mon, val)
group by empname, projname, chargedesc, costcenter, mon
having min(val) <> max(val);

相关内容

  • 没有找到相关文章

最新更新