0

我正在尝试创建一个接收患者表主键的函数。然后对于该键是否应该找到该患者的所有订单。然后,从该记录集合中,它应该获取使用的耗材及其数量,并使用耗材表来计算总成本并返回该值。

我不确定如何获得所有订单以及如何使用它们来获得供应和数量。我知道我可以通过使用简单的 select 语句来获取它们,但我只是不知道如何在函数中实现它,因为它需要返回一个值。有人有建议吗?我是用 SQL 编写代码的新手。我正在使用 MS SQL Server。

任何帮助深表感谢。

病人
----------
病人编号
第一的,
最后的,
地址


订单表
----------
不,
日期,
病人不,
地址

排序线表
----------
不,
供应编号,
数量


供应对象
----------
供应编号,
价格
4

1 回答 1

1

我不确定您的问题是关于如何创建函数或查询的外观。我会回答后者。

让我假设你有一个合理的数据结构,有四个表:( Patients未使用);Operations(每位患者的手术清单);OperationSupplies(每个操作的供应清单);和Supplies(有关每个供应的信息)。

select coalesce(sum(os.quantity * s.cost), 0) as TotalCost
from Operations o left outer join
     OperationSupplies os
     on os.OperationId = o.OperationId left outer join
     Supplies s
     on s.SupplyId = os.SupplyId
where o.PatientId = @PatientId

这是作为函数的结构:

create function xxx (@PatientId int)
returns float
as
begin
    declare @val float;

    select @val = coalesce(sum(os.quantity * s.cost), 0) as TotalCost
    from Operations o left outer join
         OperationSupplies os
         on os.OperationId = o.OperationId left outer join
         Supplies s
         on s.SupplyId = os.SupplyId
    where o.PatientId = @PatientId;
    return(@val);
end;
于 2013-04-27T21:41:48.107 回答