Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 根据以前的记录对Concat列进行分组_Mysql_Stored Procedures_Group Concat - Fatal编程技术网

Mysql 根据以前的记录对Concat列进行分组

Mysql 根据以前的记录对Concat列进行分组,mysql,stored-procedures,group-concat,Mysql,Stored Procedures,Group Concat,在我的下一份报告中,我面临着一个相当困难的问题。我有一些线索,但似乎无法用正确的查询来总结。我试过在一组数字上使用Group\u Concat,但没有得到想要的结果 以完全所有权、自由保有权和用益权交换股份(谷歌翻译了这些术语) 个人A购买100股,1-100股完全所有权 个人A出售20股的完全所有权(FO),编号81-100 个人A购买20股的自由保有权(FH),编号81-100 个人B购买20股收益权(美国),编号81-100 个人A购买100股的完全所有权(FO),编号201-300 这些

在我的下一份报告中,我面临着一个相当困难的问题。我有一些线索,但似乎无法用正确的查询来总结。我试过在一组数字上使用
Group\u Concat
,但没有得到想要的结果

完全所有权自由保有权用益权交换股份(谷歌翻译了这些术语)

  • 个人A购买100股,1-100股完全所有权
  • 个人A出售20股的完全所有权(FO),编号81-100
  • 个人A购买20股的自由保有权(FH),编号81-100
  • 个人B购买20股收益权(美国),编号81-100
  • 个人A购买100股的完全所有权(FO),编号201-300
  • 这些交易后的情况:

    • 个人A:180股完全所有权,编号1-80和编号201-300
    • 个人A:20股不动产,编号81-100
    • 个人B:20股用益权,编号81-100
    --在数据库中,这些事务将存储为:

    +----+-------------+-----------+------------+------------+------------+------+ | ID | Shareholder | Quantity | IsPurchase | NumberFrom | NumberTill | Type | +----+-------------+-----------+------------+------------+------------+------+ | 1 | Person A | 100 | true | 1 | 100 | FO | | 2 | Person A | 20 | false | 81 | 100 | FO | | 3 | Person A | 20 | true | 81 | 100 | FH | | 4 | Person B | 20 | true | 81 | 100 | US | | 5 | Person A | 100 | true | 201 | 300 | FO | +----+-------------+-----------+------------+------------+------------+------+ 非常感谢

    +-------------+-----------+-----------+-----------+----------------+------------+------------+ | Shareholder | Shares_FO | Shares_FH | Shares_US | Numbers_FO | Numbers_FH | Numbers_Us | +-------------+-----------+-----------+-----------+----------------+------------+------------+ | Person A | 180 | 20 | | '1,80;201,300' | '81,100' | | | Person B | | | 20 | | | '81,100' | +-------------+-----------+-----------+-----------+----------------+------------+------------+
    SELECT Shareholder,
        SUM(CASE WHEN Type = 'FO' THEN 
                CASE WHEN IsPurchase THEN Quantity ELSE -Quantity END
            END) AS Shares_FO,
        SUM(CASE WHEN SRI_ID = 'FH' THEN 
                CASE WHEN IsPurchase THEN Quantity ELSE -Quantity END
            END) AS Shares_FH,
        SUM(CASE WHEN SRI_ID = 'US' THEN 
                CASE WHEN IsPurchase THEN Quantity ELSE -Quantity END
            END) AS Shares_US