みんなが元気でいることを願っています。
次の出力があります...
+---------+--------------+--------------+--------- --+---------+----------+ | | ord_num | サインオフ日 | プログラム名 | prod_desc | tx_comp | 優先順位 | +---------+--------------+--------------+--------- --+---------+----------+ | | 1234567 | 2012-08-12 | を学ぶ | 実行 | 1 | 1 | | | 1234567 | 2012-08-12 | を学ぶ | 計画 | 1 | 1 | | | 1234568 | 2012-08-12 | その他 | 実行 | 1 | 1 | | | 1234569 | 2012-08-12 | その他 | 実行 | 0 | 1 | +---------+--------------+--------------+--------- --+---------+----------+
私がやりたいのは、一意の「ord_num」ごとに1回SUM
の列です。tx_comp
タスクの種類についてGROUP BY ord_num
も行うので、今は使用できません。sum
前が何だったのかを知る必要があるようでord_num
、違う場合は合計ですか?
どんなアイデアでも大歓迎です。
ありがとう。
* 編集 *
SELECT
signoff_date,
SUM(IF(prod_desc = 'run', 1, 0)) AS run,
SUM(IF(prod_desc = 'plan', 1, 0)) AS plan,
SUM(tx_comp) AS tx_comp
FROM
(
SELECT
ord_num,
signoff_date,
program_name,
prod_desc,
tx_comp,
priority
FROM
test.orders
LEFT JOIN test.tx_comp USING (ord_num)
) AS grp
明らかに望ましい出力ではありません
+--------------+------+------+---------+ | | サインオフ日 | 実行 | 計画 | tx_comp | +--------------+------+------+---------+ | | 2012-08-12 | 3 | 1 | 3 | +--------------+------+------+---------+
私は後...
+--------------+------+------+---------+ | | サインオフ日 | 実行 | 計画 | tx_comp | +--------------+------+------+---------+ | | 2012-08-12 | 3 | 1 | 2 | +--------------+------+------+---------+