--先把小于0的行取出来 取绝对值。 然后进行EXCEPT 进行抵销操作。 因为你这个要进行EXCEPT DISTINCT 操作。所有用了个ROW_NUMBER 进行修改了下 select 零件号,数量 ,总数量 from (select *,row_number () over(partition by 零件号,数量,总数量 order by (select 2)) as n from tablename where 数量>0) except (select 零件号,abs( 数量) as 数量,abs(总数量) as 总数量, row_number() over(partition by 零件号,数量,总数量 order by (select 2) ) as n from tabelname where 数量<0) as p
--先把小于0的行取出来 取绝对值。 然后进行EXCEPT 进行抵销操作。 因为你这个要进行EXCEPT DISTINCT 操作。所有用了个ROW_NUMBER 进行修改了下
select 零件号,数量 ,总数量 from
(select *,row_number () over(partition by 零件号,数量,总数量 order by (select 2)) as n from tablename where 数量>0)
except
(select 零件号,abs( 数量) as 数量,abs(总数量) as 总数量,
row_number() over(partition by 零件号,数量,总数量 order by (select 2) ) as n from tabelname
where 数量<0) as p