sql - 如何加入存储过程?

标签 sql sql-server-2005-express

我有一个不带参数的存储过程,它返回两个字段。该存储过程汇总了应用于租户的所有事务,并返回余额和租户 ID。

我想使用它通过查询返回的记录集,并且我需要将其结果连接到租户的 ID 上。

这是我当前的查询:

SELECT t.TenantName, t.CarPlateNumber, t.CarColor, t.Sex, t.SSNO, t.Phone, t.Memo,
        u.UnitNumber,
        p.PropertyName
FROM tblTenant t
    LEFT JOIN tblRentalUnit u
    ON t.UnitID = u.ID

    LEFT JOIN tblProperty p
    ON u.PropertyID = p.ID

ORDER BY p.PropertyName, t.CarPlateNumber

存储过程是这样的:

SELECT tenant.ID AS TenantID, SUM(ISNULL(trans.Amount,0)) AS TenantBalance FROM tblTenant tenant
    LEFT JOIN tblTransaction trans
    ON tenant.ID = trans.TenantID
    GROUP BY tenant.ID

我还想将存储过程中的余额添加到其中。

我该怎么做?

最佳答案

将SP的结果插入到临时表中,然后连接:

CREATE TABLE #Temp (
    TenantID int, 
    TenantBalance int
)

INSERT INTO #Temp
EXEC TheStoredProc

SELECT t.TenantName, t.CarPlateNumber, t.CarColor, t.Sex, t.SSNO, t.Phone, t.Memo,
    u.UnitNumber, p.PropertyName
FROM tblTenant t
INNER JOIN #Temp ON t.TenantID = #Temp.TenantID
...

关于sql - 如何加入存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/921190/

相关文章:

c# - 通过组合框选择数据库

mysql - 在 WHERE 子句中使用 SELECT 子查询不起作用

php - 使用pdo_sqlite在SQL查询中的'LIKE'运算符非常慢

mysql - 创建表时在 SQL 中对列进行排序的最佳做法

sql - 如何组合这些查询?

mysql - 在 `select` 的情况下,可以在 `group by` 中使用多个聚合函数吗?

command-line - SQL 2005 Express Edition - 安装新实例

sql-server - 在 SQL Server 2005 中使用数据生成脚本

sql-server-2005-express - 如何在 Management Studio 中的 MS SQL 2005 存储过程模板中设置默认作者姓名?

sql-server - 使用什么来分析 SQL Server 2005 Express?