0

助けてください。私が操作しなければならないテーブルはhttps://drive.google.com/file/d/0BwcVwVHkHN8SQ0thcUJwa2QwNjg/edit?usp=sharing です。

  1. 各アカウントの残りが変更された場合、シートの右側に記録したいと思います。accNumber 123 (たとえば、accNumber 123 のアカウントが 5 つある) の場合、最初の 3 つのエントリ (日付順) の「残り」は 777 です。 、およびそれらの日付は 12/01/2013、15/01/2013、18/01/2013 です。他の 2 つのエントリの「Rest」値は 888 で、日付は 19/01/2013 と 29/01/2013 です。3 番目のエントリで「Rest」が変更されたため、レコードは accNumber (333)、Rest (777)、Date1 (12/01/2013)、Date2 (19/01/2013) になります。したがって、Date1 は同じ「Rest」値を持つ最小日付であり、Date2 は次の「Rest」値の最小日付です。

  2. 'Rest' 値 888 は最後 (日付順 (desc) の場合) であるため、Date1 にこの 'Rest' 値の最小日付を割り当て、'Date2' に日付の最大値を割り当てることによって、これも記録する必要があります。この特定の「休息」値であり、次の休息値の最小日ではありません (そのようなものがないため)。

複雑な質問で申し訳ありませんが、ご理解いただければ幸いです。これが私が最初の部分のために書いたものです(それは機能します)。前もって感謝します

select a.accNumber, a.Rest, min(a.Date),  min(b.Date)  
from tt1  a, tt1 b 
where b.Date>a.Date
and a.accNumber=b.accNumber
and a.Rest<>b.Rest
Group by a.accNumber, a.Rest
4

0 に答える 0