助けてください。私が操作しなければならないテーブルはhttps://drive.google.com/file/d/0BwcVwVHkHN8SQ0thcUJwa2QwNjg/edit?usp=sharing です。
各アカウントの残りが変更された場合、シートの右側に記録したいと思います。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」値の最小日付です。
'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