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)