1

日付、アイテム、数量が記載されたテーブルがあります。

1日あたりの合計を返すためにSQLクエリが必要ですが、合計は数量から前日の合計を引いたものです。月が進むにつれて量が蓄積されます。したがって、1番目は5、2番目は12、3番目は20になる可能性があります。

したがって、1番目は5を追加します。2番目は7を追加して12を作成します。3番目は8を追加して20を作成します。

私は過去にこのようなことをしたことがありますが、それを見つけることも覚えることもできません。相関サブクエリが必要になることはわかっています。

TIA

-

編集1

MicrosoftAccessを使用しています。日付は日時フィールド、アイテムはテキスト、数量は数値です

-

編集2

わかりました、これは私が持っているものです

SELECT oos.report_date, oos.tech, oos.total_cpe, oos_2.total_cpe
   FROM oos INNER JOIN (
     SELECT oos_2.tech, Sum(oos_2.total_cpe) AS total_cpe
     FROM oos_2
     WHERE (((oos_2.report_date)<#10/10/2010#))
     GROUP BY oos_2.tech
   ) oos_2 ON oos.tech = oos_2.tech;

oos.report_dateを#10/10/2010#と表示する場所に移動するにはどうすればよいですか。mysqlのようにそこに貼り付けることができると思いましたが、運がありませんでした。研究を続けていきます。

4

2 に答える 2

0

わかりました、私はそれを理解しました。

SELECT o.report_date, o.tech, o.total_cpe, 
o.total_cpe -  (
    SELECT  IIf(Sum(oos.total_cpe) is null, 0,Sum(oos.total_cpe)) AS total_cpe 
    FROM oos 
    WHERE (((oos.tech)=o.tech) AND ((oos.report_date)<o.report_date))
) AS total
FROM oos o;
于 2010-02-06T22:28:02.527 に答える
0

日付に 1 を追加して値を負にすることで合計し、今日の合計から昨日の合計を取得します。

SELECT report_date, tech, Sum(total_cpe) AS total_cpe 
FROM (
    SELECT oos.report_date, oos.tech, oos.total_cpe
    FROM oos 
    UNION ALL
    SELECT oos.report_date+1, oos.tech, 0-oos.total_cpe 
    FROM oos 
)
WHERE (report_date < #10/10/2010#) 
GROUP BY report_date, tech 
ORDER BY report_date, tech 
于 2010-02-06T22:20:30.907 に答える