日期:2014-05-18  浏览次数:20541 次

sql去重去掉相同的记录,取出单一记录,distinct也不行,求解决方法
SQL code
select      

    distinct( proSaleBill.proSaleBillCode),
              proSaleBill.BusiName     ,  
              proSaleBill.saleMan,
              proSaleBill.madeBillDate,
              proSaleBill.departmentName,
              proSaleBill.madeBillUser              
            
from   proSaleBill
where  mangeReview is null
group by  proSaleBill.proSaleBillCode,
          proSaleBill.BusiName,  
          proSaleBill.saleMan,
          proSaleBill.madeBillDate,
          proSaleBill.departmentName,
          proSaleBill.madeBillUser

执行此存储过程得到如下记录:


ps:proSaleBill表除了上述字段,还有其他字段。
就像上图,一个订单可能有多个成品记录,每个成品的数量 单价 等是不一样的。但是一个订单的公共数据是一样的,如业务员,商务伙伴、制单日期、制单部门、制单员。

现在我想一个订单只取出一个记录,而不是像上面这样XC201207130009出现了三条,请问有什么实现方法。
在线等!!!万分感谢!!!

------解决方案--------------------
SQL code

select      
    proSaleBill.proSaleBillCode,
      min(proSaleBill.BusiName)  BusiName,  
      min(proSaleBill.saleMan) saleMan,
      min(proSaleBill.madeBillDate) madeBillDate,
      min(proSaleBill.departmentName) departmentName,
      min(proSaleBill.madeBillUser) madeBillUser               
from   proSaleBill
where  mangeReview is null
group by  proSaleBill.proSaleBillCode

------解决方案--------------------
不知道你最后想怎么取数据,按照你现在的语句,去掉proSaleBill.madeBillDate这列就行了.
------解决方案--------------------
明显madeBillDate不一样,可以格式化一下,只取yyyy-MM-dd
------解决方案--------------------
把除了proSaleBillCode的字段用聚合函数 然后GROUP BY