0

あるテーブルの行を別のテーブルの別の行にマージしたい

「name」に関連する「amount」の値は常に 10 を超えていますが、いくつかに分割されています

「金額」列の値が 10 未満の場合は、10 未満の値をすべて収集し、同じ名前を持つ列「説明」の値をまとめます

私の目標は、新しいテーブルに10未満の行「金額」が存在しないことです

別名

このフォームテーブルが欲しい - 「テーブル」

id(1) 名前(名前1) 説明(説明1) 金額(5.50)

id(2) 名前(名前1) 説明(説明2) 金額(5.50)

id(3) 名前(名前2) 説明(説明1) 金額(3.50)

id(4) 名前(名前2) 説明(説明1) 金額(3.50)

id(5) 名前(名前2) 説明(説明2) 金額(3.50)

id(6) 名前(名前3) 説明(説明3) 金額(10.00)

新しいテーブルでこれに入る - 「newtable」

Newid(1) name(Name1) description(Description1,Descripton2) amount(11.00)

Newid(2) name(Name2) description(Description1,Description1,Descripton2) amount(10.50)

Newid(3) name(Name3) description(Description3) amount(10.00)

何か案は?

4

2 に答える 2

0

group bygroup_concatおよびそのために使用できますsum

ここに小さなサンプルがあります:

SELECT
`name`,
group_concat(`description`) as `description`,
sum(`amount`) as `amount` 
FROM `table_name`
GROUP BY `name`

ところで、私は尋ねるのを忘れていました:何を試しましたか?

于 2012-11-22T14:43:18.973 に答える
0

多分このようなもの:

select into newtable(name,newdesc,amt)
SELECT name,
        GROUP_CONCAT(DISTINCT description
                  ORDER BY id DESC SEPARATOR ' '), sum(amount)
     FROM table
     GROUP BY name;
于 2012-11-22T14:47:51.653 に答える