재무 트랜잭션이 포함 된 테이블이있는 Sqlite 데이터베이스가 있습니다. 적절한 열은 날짜, PO # 및 차변 및 대변 금액입니다. 이 트랜잭션을 표시하고 임의의 시작 잔액 (항상 첫 번째 레코드)을 기반으로 누적 합계를 계산해야합니다. Sqlite 데이터베이스에서 누적 합계 필요
나는이 쿼리를 기반으로 뷰 생성 :SELECT t1.[ID], t1.[Date], t1.[PO], t1.[Debit], t1.[Credit],
(SELECT SUM(t2.[Credit]) - SUM (t2.[Debit])
FROM [Transaction] t2
WHERE t2.[ID] <= t1.[ID]) AS [Balance]
FROM [Transaction] t1
을하고 그것을 작동합니다. 문제는 때로는 날짜 및/또는 PO 번호로 주문해야하며 때가되면 잔액 열 값이 올바른 반면 주문이 잘못되었습니다. 또한 날짜별로 필터링해야하므로 Transaction 테이블에서 계산 된 열을 사용할 수 있다고 생각하지 않습니다.
ROWID
값을 사용했지만 변경 사항은 없습니다. 내가 아는 한 Sqlite는 ROW_NUMBER() OVER()
을 지원하지 않는다. 나는 며칠 동안이 일을 행운으로 내 머리를 감싸려고 노력했다.
이 .NET Compact Framework 응용 프로그램 인 Sqlite ADO.NET 버전 1.0.66 (Sqlite 엔진의 버전이 확실하지 않음)입니다.
은행 데이터베이스에서 균형을 유지하는 가장 좋은 방법은 [각 거래 후 잔액을 기록하는] 것입니다 (http://yourcodeisshowing.wordpress.com/2011/01/19/the-bankers-database/). – MPelletier
나는 동의하지 않는다. 트랜잭션 테이블을 업데이트하기 위해 트리거를 사용하는 방법에 대해서는 언급했지만 다른 방법은 알지 못합니다. 이제 Google에 더 많은 시간을 맞춰보세요. –
거래 테이블에 잔액 필드가있는 경우 각 거래가 끝나면 잔액을 업데이트 할 방아쇠가있을 것입니다. – MPelletier