我有这样的一个需求,先看数据
上面的记录,圈起来的 数据关键字段是重复的,但有的字段不一样,
我现在想合并为一条,特殊字段,取有值的
搜了很多行转列,都不是我需要的
不过有了启发,
启发例子
我自己的实现
实现比较简单,
select ItemID,BillID,TableName, DishName, DishUnit, DishPrice, inputTime,Account,OriginDishQty,MAX(jlStaff) as jlStaff ,MAX(stStaff) as stStaff ,MAX(pcStaff) as pcStaff,MAX(zz1Staff) as zz1Staff,MAX(zzStaff) as zzStaff,MAX(ccStaff) as ccStaff,max(zztime) as zztime ,max(cctime) as cctimefrom (select itemid,billid,TableName, DishName, DishUnit, DishPrice, inputTime,jlStaff, stStaff, pcStaff, zz1Staff, zzStaff, ccStaff, OriginDishQty,cast(OriginDishQty * DishPrice as numeric(18,2)) as Account,zztime,cctimefrom xxxwhere inputTime > '2024-09-18 00:00:01' and inputTime < '2024-09-18 23:00:01'and DishQty = 0and (ccStaff <> '' or zzStaff <> '') ) a group by itemid,billid,TableName, DishName, DishUnit, DishPrice, inputTime,Account,OriginDishQty