0

我想将一个表中的行合并到另一个表中的另一行

与“姓名”相关的“金额”始终值大于 10,但拆分为几块

如果“金额”列的值小于 10,则收集所有小于 10 的值,将具有相同名称的“描述”列的值汇集在一起

我的目标是在新表中不存在低于 10 的行“金额”

又名

我想要这个表格 - 'table'

id(1) 名称(Name1) 描述(Description1) 金额(5.50)

id(2) 名称(Name1) 描述(Description2) 金额(5.50)

id(3) 名称(Name2) 描述(Description1) 金额(3.50)

id(4) 名称(Name2) 描述(Description1) 金额(3.50)

id(5) 名称(Name2) 描述(Description2) 金额(3.50)

id(6) 名称(Name3) 描述(Description3) 金额(10.00)

在一个新表中进入这个 - 'newtable'

Newid(1) 名称(Name1) 描述(Description1,Descripton2) 金额(11.00)

Newid(2) 名称(Name2) 描述(Description1,Description1,Descripton2) 金额(10.50)

Newid(3) 名称(Name3) 描述(Description3) 金额(10.00)

有任何想法吗?

4

2 回答 2

0

您可以使用group by,group_concatsum为此。

这是一个小样本:

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 回答