2016-07-22 6 views
-2

前の行の値のスコアを加算して3番目の列を追加したい、または2番目の列を修正したいと思います。私は日付別に2つのテーブルを追加していますが、データを連続して追加することはできません。mysqlを使用したローリングアップ

のDDL:

CREATE TABLE 1_bugs 
(id int(11) NOT NULL 
, date date NOT NULL 
, cf1 int(11) NOT NULL 
, cf2 int(11) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

INSERT INTO 1_bugs (id, date, cf1, cf2) VALUES 
(1, '2016-07-19', 3, 2), 
(2, '2016-07-19', 2, 1), 
(3, '2016-07-22', 2, 2); 

問合せ:

SELECT table.date1, IFNULL(table.cf1 + bugs.cf2),0) as score FROM table GROUP BY table.date1; 

出力:期待

| date1 | score | 
| 2016-07-19 | 5 | 
| 2016-07-19 | 3 | 
| 2016-07-22 | 4 | 

| date1 | score | Total score | 
| 2016-07-19 | 5 | 5 | 
| 2016-07-19 | 3 | 8 | 
| 2016-07-22 | 4 | 12 | 

私はロールアップを試しましたが、期待どおりの出力が得られず、すべてのスコア値を加算したヌル行が追加されます。

| date1 | score | 
| 2016-07-19 | 5 | 
| 2016-07-19 | 3 | 
| 2016-07-22 | 4 | 
| null  | 12 | 

誰かが期待どおりの出力を得るのを助けてくれますか?

+1

あなたが好きな場合は、アクションのこの単純な二段階のコース、次の考慮:あなたはまだ行っていない場合は1を、適切なCREATEおよびステートメント(および/またはsqlfiddle)を挿入提供することは私たちがより簡単にできるように、問題を再現する。 2.まだ実行していない場合は、手順1で提供された情報に対応する望ましい結果セットを提供してください。 – Strawberry

+0

CREATE TABLE '1_bugs'( ' id' int(11)NOT NULL、 'date' dateはNULLではありません(11)NOT NULL )ENGINE = InnoDB DEFAULT CHARSET = latin1; INSERT INTO '1_bugs'(' id'、 'date'、' cf1'、 'cf2')VALUES (1、 '2016-07-19'、3,2)、 (2、 '2016-07 -19 '、2、1)、 (3、' 2016-07-22 '、2、2); –

+0

あなたはあまりにも読み直すことができますか?作成、挿入、予期されていない、実際には問題は既に言及されていませんか?もしあなたが知っていれば、あなたはそれに答えることができますか? –

答えて

1
SELECT x.* 
    , x.cf1+x.cf2 sub_total 
    , SUM(y.cf1+y.cf2) running 
    FROM 1_bugs x 
    JOIN 1_bugs y 
    ON y.id <= x.id 
GROUP 
    BY x.id; 
+----+------------+-----+-----+-----------+---------+ 
| id | date  | cf1 | cf2 | sub_total | running | 
+----+------------+-----+-----+-----------+---------+ 
| 1 | 2016-07-19 | 3 | 2 |   5 |  5 | 
| 2 | 2016-07-19 | 2 | 1 |   3 |  8 | 
| 3 | 2016-07-22 | 2 | 2 |   4 |  12 | 
+----+------------+-----+-----+-----------+---------+ 
+0

素早く完璧な答えをありがとう!私は1つの質問がある、私はテーブルのカップルを持っていると私はそれが私に問題を与えている参加している。ここにメモを追加したいのですか、新しい質問を作成してそこに答えることができますか? –

+0

新しい質問をしてください – Strawberry

関連する問題