在select查询中执行存储过程

use*_*579 0 sql-server stored-procedures select-query

我正在使用SQL Server 2008 R2,我正在尝试运行一个查询,其中也将执行存储过程.

查询是:

select a.custnmbr, a.custname, a.salsterr, b.itemnmbr, b.itemdesc, d.slprsnid ,exec dbo.QtySoldPerMonth a.custnmbr, b.itemnmbr, @year 
from rm00101_temp a, iv00101_temp b 
inner join sop30300_RPT c on b.itemnmbr = c.itemnmbr
inner join sop30200_RPT d on c.sopnumbe = d.sopnumbe
where
b.itemnmbr like @houseCode + '%' and itmclscd like @classCode + '%'
AND DATEPART(year, d.docdate) = @year
group by a.custnmbr, a.custname, a.salsterr, b.itemnmbr, b.itemdesc, d.slprsnid
order by d.slprsnid, b.itemnmbr 
Run Code Online (Sandbox Code Playgroud)

我真正想问的是如何dbo.QtySoldPerMonth在select查询中包含存储过程的执行?此外,存储过程的参数是:@custNo = a.custnmbr, @itemNo = b.itemnmbr@year = @year.

任何有关如何重写查询以执行sp的帮助将不胜感激.

Sta*_*ley 6

  1. 为sp输出创建临时表
  2. exec将proc存储到临时表中
  3. 将临时表连接到查询的其余部分

    create table #temp(yourCol1 int, your Col2 int...);
    
    insert #temp(yourCol1,yourCol1...)
    exec dbo.QtySoldPerMonth 
    
    select * from blah
        join #temp t on (blah.blah=t.id...)
    
    Run Code Online (Sandbox Code Playgroud)