SQL server-如何在一个视图中使用几个字段来避免重复记录



我在SQL Server上有一个源表,它每天都存储数据,而不考虑属性的任何更改。例如

ACCT_ID           DATE   CNCY_C  BALN_A
200013818991    10/04/2014  AUD -500,000.00
200013818991    11/04/2014  AUD -500,000.00
200013818991    14/04/2014  AUD -500,000.00
200013818991    15/04/2014  AUD -500,000.00
200013818991    16/04/2014  AUD -500,000.00
200013818991    17/04/2014  AUD -500,000.00
200013818991    22/04/2014  AUD 0
200013818991    23/04/2014  AUD 0
200013818991    24/04/2014  AUD 0
200013818991    28/04/2014  AUD -500,000.00
200013818991    29/04/2014  AUD -500,000.00
200013818991    30/04/2014  AUD -500,000.00
200013818991    1/05/2014   AUD -500,000.00

由于数据太大,我们只想把有变化的记录带到以下

ACCT_ID             DATE    CNCY_C  BALN_A
200013818991    10/04/2014  AUD   -500,000.00
200013818991    22/04/2014  AUD    0
200013818991    28/04/2014  AUD   -500,000.00

我没有对数据库进行"创建"访问,无法将数据复制到另一个表中并使用秩等进行检查。有没有其他方法可以使用视图实现这一点。。感激你的想法。

请参阅图片以更好地理解数据

您需要一个聚合及其背后的逻辑。

这应该会帮助你

SELECT ACCT_ID,MIN(DATE),CNCY_C,BALN_A
FROM yourTable
GROUP BY ACCT_ID,CNCY_C,BALN_A

您可能需要决定重复的日子会发生什么。如果你想要一个值的第一次出现,那么就让MIN()保持原样。如果你想要最后一次出现,你需要把它改为MAX()

最新更新