当前位置: 代码迷 >> Sql Server >> 两表联查,怎么让重复数值字段只显示一笔,另外一笔以0显示
  详细解决方案

两表联查,怎么让重复数值字段只显示一笔,另外一笔以0显示

热度:98   发布时间:2016-04-24 09:22:41.0
两表联查,如何让重复数值字段只显示一笔,另外一笔以0显示?
如下,表
                  X
  A(订单号)    B(订单数量)   C(单价)    D(金额) E(已销货数量)    
   001                   3                  1            3                   2
                   Y
 A(销货单号)     B(订单号)        C(销货数量)   
   001                         001                 1
   002                         001                 1

现在需要查询一张报表,显示订单号,销货单号,待销数量(订单数量 - 已销货数量)

select   X.A  as  '订单号',Y.A as '销货单号', (X.B - X.E )   as ‘待销数量’ from X LEFT JOIN Y ON  X.A = Y.B   

结果如下
订单号     销货单号    待销数量
  001            001              1
  001            002              1         
进行汇总待销数量时,总待销数量就成 2 了,这是不对的。
那可否实现下面的结果呢  ??
订单号     销货单号    待销数量
  001            001              1
  001            002              0        
------解决思路----------------------
SELECT X.A[订单号],Y.A[销货单号]
,CASE WHEN ROW_NUMBER()OVER(PARTITION BY X.A ORDER BY Y.A)=1 THEN X.B-X.E ELSE 0 END[待销数量]
FROM X LEFT JOIN Y ON X.A=Y.B
是酱紫吗?
  相关解决方案