Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 如何使用组值合并两个表?_Mysql_Sql - Fatal编程技术网

Mysql 如何使用组值合并两个表?

Mysql 如何使用组值合并两个表?,mysql,sql,Mysql,Sql,如何使用组值合并两个表 我的问题是: SELECT employee.employee_name, count(employee.employee_name) as count, sum(table1.position) as totalshares FROM erom_kmch.table1 LEFT OUTER JOIN erom.employee ON employee.bene_type_table1=table1.bene

如何使用组值合并两个表

我的问题是:

SELECT
   employee.employee_name,
   count(employee.employee_name) as count,
   sum(table1.position)     as totalshares 
FROM
   erom_kmch.table1 
LEFT OUTER JOIN
   erom.employee 
      ON     employee.bene_type_table1=table1.bene_type     
      AND employee.bene_stype_table1=table1.bene_stype 
WHERE
   table1.date =    '2016-04-15' 
group by
   employee.employee_name 
UNION
SELECT
   employee.employee_name,
   count(employee.employee_name) as count,
   sum(table2.shares) as totalshares    
FROM
   erom_kmch.table2 
LEFT OUTER JOIN
   erom.employee     
      ON  employee.type_table2=table2.type     
      AND  employee.bo_substat_table2=table2.bo_substat 
WHERE
   table2.date =   '2016-04-15' 
group by
   employee.employee_name
返回:

   employee_name          count    totalshares
    NULL                 0 0       21967
    Clearing Member      9 9       1386
    devloper-php         4 4       1984
    devloper-.net        46 46      410713
    devloper-.android    2
     NULL        4056461       0      117154
     devloper-.C#php        2   5     31618309
     devloper-.net    
     Resident Individual   939  25 361020   22762
但我需要这样的输出:

    employee_name         count     totalshares
            NULL             0        139121
      Clearing Member        15       5355
        devloper-php         9        2293
        devloper-.net        46       433475
      devloper-.android      2        4056461
        devloper-.C#         2        31618
       Resident Individual   3668      2662925
      Individual- Director      1        100

我正在连接和并集两个表,我需要对两个表的值进行分组。我得到两个输出,我需要两个表的总和和计数作为一个输出。

您应该使用子查询:

SELECT
      [YourField]
    , [YourAggregate]
FROM
    (SELECT  
          table1.holder
        , table1.bene_type
        , table1.bene_stype
        , employee.employee_name
        , COUNT(employee.employee_name) AS [count]
        , SUM(table1.position) AS totalshares 
    FROM 
        erom_kmch.table1 
            LEFT OUTER JOIN 
        erom.employee 
            ON employee.bene_type_table1=table1.bene_type AND employee.bene_stype_table1=table1.bene_stype 
    WHERE 
        table1.date = '2016-04-15' 
    GROUP BY 
        employee.employee_name 
    UNION 
    SELECT 
      table2.cust_name
      , table2.type
      , table2.bo_substat
      , employee.employee_name
      , COUNT(employee.employee_name) as [count]
      , SUM(table2.shares) as totalshares
    FROM 
        erom_kmch.table2 
            LEFT OUTER JOIN 
        erom.employee 
            ON  employee.type_table2=table2.type AND employee.bo_substat_table2=table2.bo_substat 
    WHERE 
        table2.date = '2016-04-15' 
    GROUP BY employee.employee_name
     ) AS A
GROUP BY
    [YourField]

注意:您还应该使查询易于阅读。

将其放入子查询中,并在外部查询中求和。我知道mysql允许这样做,但您应该将所有不在聚合函数中的属性放入group by,另一种方式是显示原始表格不要将所有文本格式化为代码…哈哈..他正在努力格式化他的问题:通过输出的外观。我认为没有必要选择所有的专栏,就像他/她在编辑和格式化他/她时遇到困难一样question@jonju是的。看不到她/他在输出中的[类别名称]是哪个字段等待..我想他/她仍在编辑中。编辑链接已禁用