SELECT c.Name AS PayMethodName, b.Name AS DepartmentName, 1 AS COUNT
FROM  crm_Order a LEFT OUTER JOIN
      crm_Group b ON b.ID = a.DepartmentID LEFT OUTER JOIN
      crm_Enumerate c ON c.ID = a.PayMethod
WHERE (a.InsertDate BETWEEN '20070101' AND '20070102')
     
UNION ALL  ------ 加个 all  试试SELECT '无' AS PayMethodName, crm_Group.Name AS DepartmentName,0 AS COUNT
FROM  dbo.crm_Group
WHERE crm_Group.ParentID = 425

解决方案 »

  1.   

    SELECT c.Name AS PayMethodName, b.Name AS DepartmentName, 1 AS COUNT
    FROM  crm_Order a LEFT OUTER JOIN
          crm_Group b ON b.ID = a.DepartmentID LEFT OUTER JOIN
          crm_Enumerate c ON c.ID = a.PayMethod
    WHERE (a.InsertDate BETWEEN '20070101' AND '20070102')
         
    UNION ALLSELECT '无' AS PayMethodName, crm_Group.Name AS DepartmentName,0 AS COUNT
    FROM  dbo.crm_Group
    WHERE crm_Group.ParentID = 425
      

  2.   

    union  会合并 相同的记录,俩个select 都加上distinct 这样再试一下
    SELECT distinct c.Name AS PayMethodName, b.Name AS DepartmentName, '1' AS [COUNT]
    FROM  crm_Order a LEFT OUTER JOIN
          crm_Group b ON b.ID = a.DepartmentID LEFT OUTER JOIN
          crm_Enumerate c ON c.ID = a.PayMethod
    WHERE (a.InsertDate BETWEEN '20070101' AND '20070102')  
    UNION
    SELECT distinct '无' AS PayMethodName, crm_Group.Name AS DepartmentName,'0' AS [COUNT]
    FROM  dbo.crm_Group
    WHERE crm_Group.ParentID = 425
      

  3.   

    单独运行第一个条sql就有249条--- 这个里面的数据一定有重复的union all 标志表示在并集中保留重复项