考虑以下场景(如果它有助于思考Northwind Orders / OrderDetails)。
我有两张桌子LandingHeaders和LandingDetails,记录有关商业钓鱼之旅的详细信息。通常,在一周的时间内,一艘渔船可以多次前往海上,因此最终将获得多个LandingHeader / LandingDetail记录。
在每周结束时,购买这些钓鱼之旅结果的公司需要计算每艘船每次着陆的价值,然后向该船只的所有者支付任何款项。为了增加乐趣,有一些船只由同一个人拥有,因此购买鱼的公司更愿意,如果某个人拥有的所有船只的所有着陆价值合并为一次付款。
到目前为止,执行此任务所需的信息分散在一个简单的主 - 详细信息表结构中,因此它需要几个存储过程(以及在主应用程序中明智地使用字典来完成工作)达到理想的最终结果。我无法控制的外部环境迫使一些主要的数据库更改,我借此机会重新构建LandingHeader表,使其包含可能需要的所有必要信息。
从登陆标题表中我需要记录以下字段;
从LandingDetails表中我需要记录以下字段;
我一直在考虑创建一个带有参数VesselOwnerID,SartDate和EndDate的查询。
作为输出,我需要知道哪个LandingId与所有者相关联,并且每个Distinct ProductId的总数量(以及UnitPrice在选定时间段内对于每个ProductId都是相同的)分布在与之关联的各种landingDetails上。在给定时期内登陆。
可以通过标准的主 - 详细类型表关系来完成这类事情,还是我仍然需要求助于多个存储过程。
长期目标是拥有一个可用于生成xml的查询,该查询可以适用于web api。