0

これで何日も立ち往生しています。過去の日付で SQL 結果セットをグループ化したい。そのため、指定された日付範囲内の各日付から日付ごとに結果をグループ化する必要があります。ここまでは私のSQLですが、過去の日付ではなく日付で結果をグループ化しています。

助けてください!

SELECT ledger.transdate,
sum(case when transcodes.dtcr = 'C' then ledger.amount else 0 end) Credit,
sum(case when transcodes.dtcr = 'D' then ledger.amount else 0 end) Debit,
sum(case when transcodes.dtcr = 'C' then ledger.amount else 0 end) -
sum(case when transcodes.dtcr = 'D' then ledger.amount else 0 end) Balance
FROM
  LEDGER
  INNER JOIN TRANSCODES ON (LEDGER.TRANSCODE = TRANSCODES.TRANSCODE)
 where ledger.transdate >= '2013-02-28' and ledger.transdate <= '2013-03-01'
 group by ledger.transdate
4

3 に答える 3

0

あなたの答えはここにあります: http://www.codeproject.com/Articles/300785/Calculating-simple-running-totals-in-SQL-Server

于 2013-07-11T07:56:57.477 に答える
0

Maybe consider this example...

SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+

 SELECT x.i, SUM(y.i) running FROM ints x JOIN ints y ON y.i <= x.i GROUP BY i;
+---+---------+
| i | running |
+---+---------+
| 0 |       0 |
| 1 |       1 |
| 2 |       3 |
| 3 |       6 |
| 4 |      10 |
| 5 |      15 |
| 6 |      21 |
| 7 |      28 |
| 8 |      36 |
| 9 |      45 |
+---+---------+
于 2013-07-03T07:06:26.030 に答える
0

私があなたを正しく理解していて、transdate フィールドの日付のみの部分でグループ化したい場合は、Date() 関数を使用できます。つまり、... group by Date(transdate)

于 2013-07-03T07:08:35.827 に答える