一个结构如何查询在给定时间段内合并主要详细记录

时间:2018-05-08 11:05:02

标签: sql sql-server-2017 sql-server-2016-express

考虑以下场景(如果它有助于思考Northwind Orders / OrderDetails)。

我有两张桌子LandingHeaders和LandingDetails,记录有关商业钓鱼之旅的详细信息。通常,在一周的时间内,一艘渔船可以多次前往海上,因此最终将获得多个LandingHeader / LandingDetail记录。

在每周结束时,购买这些钓鱼之旅结果的公司需要计算每艘船每次着陆的价值,然后向该船只的所有者支付任何款项。为了增加乐趣,有一些船只由同一个人拥有,因此购买鱼的公司更愿意,如果某个人拥有的所有船只的所有着陆价值合并为一次付款。

到目前为止,执行此任务所需的信息分散在一个简单的主 - 详细信息表结构中,因此它需要几个存储过程(以及在主应用程序中明智地使用字典来完成工作)达到理想的最终结果。我无法控制的外部环境迫使一些主要的数据库更改,我借此机会重新构建LandingHeader表,使其包含可能需要的所有必要信息。

从登陆标题表中我需要记录以下字段;

  1. sql type int的LandingHeaderId
  2. sql type int
  3. 的VesselOwnerId
  4. LandingDate(仅用作现实查询的一部分)的sql类型datetime
  5. 从LandingDetails表中我需要记录以下字段;

    1. sql type int的ProductId
    2. sql类型的数量decimal(10,2)
    3. sql type money的UnitPrice
    4. 我一直在考虑创建一个带有参数VesselOwnerID,SartDate和EndDate的查询。

      作为输出,我需要知道哪个LandingId与所有者相关联,并且每个Distinct ProductId的总数量(以及UnitPrice在选定时间段内对于每个ProductId都是相同的)分布在与之关联的各种landingDetails上。在给定时期内登陆。

      我一直在思考输出行的行,看起来有点像这样; enter image description here

      可以通过标准的主 - 详细类型表关系来完成这类事情,还是我仍然需要求助于多个存储过程。

      长期目标是拥有一个可用于生成xml的查询,该查询可以适用于web api。

0 个答案:

没有答案