1

これは私がやろうとしていることです:

日付ごとにグループ化されたすべての行の合計を取得します

すべての行を個別に取得する

私はこれを成功させました...問題は、順序を全体的に変更したいことです

ここに私のテーブルの列があります

[ID][日付][金額]

例:

1、2013 年 10 月 1 日、102.10

2、2013-10-01、256.15

3, ...

素人の言葉で私が得た出力は、

行の最初の x は、日付別にグループ化された合計です

残りの行は個々の金額です

素人の言葉で私が望む出力は、

最初の行は、次の行を日付別に合計したものです。次にすすぎを繰り返します。

すなわち

2013-10-01, 200.00 <-- 合計

2013-10-01, 150.00

2013-10-01, 50.00

2013-10-02, 300.00 <-- 合計

2013 年 10 月 2 日、150.00

2013 年 10 月 2 日、150.00

これが私のクエリです:

SELECT
    t.date,
    round(sum(t.amount), 2) as total
FROM invoice t
GROUP BY t.date
UNION ALL
SELECT
    t.date,
    round(t.amount, 2)
FROM invoice t;

SQLFiddleで私の例を参照してください。

これについてご支援いただきありがとうございます。

4

2 に答える 2

1

結果の順序を日付で変更したいという意味だと仮定すると (通常、そのような仮定はしません)、単純に「ORDER BY」を SQL に追加する必要があります。以下はトリックを行うはずです。

SELECT
    t.date,
    round(sum(t.amount), 2) as total
FROM invoice t
GROUP BY t.date
UNION ALL
SELECT
    t.date,
    round(t.amount, 2)
FROM invoice t
ORDER BY date
于 2013-10-09T23:13:27.780 に答える
1

あなたの編集を考えると、日付で並べ替えてから、合計金額の降順で並べ替えたいようです。

SELECT
  date,
  round(sum(amount), 2) as total
FROM invoice
GROUP BY date
UNION ALL
SELECT
  date,
  round(amount, 2)
FROM invoice
ORDER BY date, total DESC
于 2013-10-09T23:21:57.260 に答える