当前位置: 代码迷 >> Sql Server >> 没发现有关问题出在哪里了
  详细解决方案

没发现有关问题出在哪里了

热度:89   发布时间:2016-04-24 09:38:35.0
没发现问题出在哪里了
select * into #DataTa 
  from(
  select  InvId, sum(OutQty)OutQty,sum(InQty)InQty,(sum(OutQty)+sum(InQty))Qty, OrderType  
  from( select * from vInvSummary 
  where   OrderType not in(1,2,3,4)''
   +@strwhere
    )DataT
   group by OrderType,InvId
  )tab  

@strwhere条件变量 没有用
@strwhere 为空查询结果是4条  加了条件结果还是4条  (单独写sql查 条件又可以过滤)。
不管条件变量有没有值 查询结果都一样 ,大家帮忙看看,是什么问题。
------解决思路----------------------
-- 先建临时表
SELECT InvId, OutQty, InQty, OutQty+InQty AS Qty, OrderType
  into #DataTa 
  FROM vInvSummary
 WHERE 1=0

-- 把取数部分的tab子查询做成动态
-- 又:子查询DataT毫无意义,简化掉。
@sql = 'select  InvId, sum(OutQty)OutQty,sum(InQty)InQty,(sum(OutQty)+sum(InQty))Qty, OrderType  
   from vInvSummary 
   where OrderType not in(1,2,3,4)'
   + @strwhere + '
    group by OrderType,InvId'

-- 动态语句的结果可以这样插入临时表
INSERT INTO #DataTa 
EXEC(@sql)
  相关解决方案