通过以下SQL语句查询:
select mealname,COUNT(*) 份数 from Melinfo2 group by mealname
select mealname,sum(份数) 份数 from tb  group by mealname
得到下面两个查询结果
   表1,      mealname           份数                   表2.         mealname            份数
              鸡蛋饭              5                                   肉段饭             3
              排骨饭              2                                   鸡蛋饭             3 
如何能然上边两个表变成一个表啊,就像表3一样
  表3,mealname            份数
       鸡蛋饭               8
       排骨饭               2
       肉段饭               3
跪求高手解决~~~

解决方案 »

  1.   


    select t.mealname,sum(t.份数) 份数
    from (
    select mealname,COUNT(*) 份数 from Melinfo2 group by mealname
    UNION ALL
    select mealname,sum(份数) 份数 from tb group by mealname
    )
    t group by t.mealname
      

  2.   


    select mealname,sum(份数) from (
    select mealname,COUNT(*) 份数 from Melinfo2 group by mealname
    union all
    select mealname,sum(份数) 份数 from tb group by mealname) as t group by mealname
      

  3.   

    我后面可以加where语句吗?在  group by mealname 后面加where  convert(datetime,convert(char(20),[maketime],102))= '" + t + "' 表Melinfo2和tb里面面有一个datetime字段,因为我要查询的数据要的是当天的,麻烦在帮忙看下,辛苦了
      

  4.   


    select mealname,sum(份数) from (
    select mealname,COUNT(*) 份数 from Melinfo2 where datediff(day,datetime,getdate())=0  group by mealname
    union all
    select mealname,sum(份数) 份数 from tb where datediff(day,datetime,getdate())=0 group by mealname) as t group by mealname
      

  5.   

    select t.mealname,sum(t.份数) 份数
    from (
    select mealname,COUNT(*) 份数 from Melinfo2 group by mealname
    UNION ALL
    select mealname,sum(份数) 份数 from tb group by mealname
    )

    where
       convert(datetime,convert(char(20),[maketime],102))= '" + t +"' 
    group by
     t.mealname
      

  6.   

    +++1
    鉴于你已去到了结果集“select mealname,COUNT(*) 份数 from Melinfo2 group by mealname
    union all
    select mealname,sum(份数) 份数 from tb group by mealname) as t group by mealname

    不用聚合函数也是可以的;可以写成如下:
    “SELECT T.mealName,sum(T.mealNum) AS 份数 FROM 
    (
    SELECT mealName,mealNum FROM tb1
    UNION ALL
    SELECT mealName,mealNum FROM tb2
    )T
    --where T.mealName=N'鸡蛋饭'(如需带where条件,在group by前加上条件)
    group by T.mealName”