【问题标题】:How to get any three rows of particular date in SQL Server如何在 SQL Server 中获取特定日期的任意三行
【发布时间】:2013-02-15 09:40:20
【问题描述】:

我卡在一个 sql 查询中。

我的表格格式如下:

Acct# AdmitDate DOS ChargeAmount 12366 2011-12-07 00:00:00.000 2011-12-15 00:00:00.000 25.00 12366 2011-12-07 00:00:00.000 2011-12-16 00:00:00.000 30.00 12366 2011-12-07 00:00:00.000 2011-12-17 00:00:00.000 55.00 12366 2011-12-07 00:00:00.000 2011-12-18 00:00:00.000 48.00 12366 2011-12-07 00:00:00.000 2011-12-19 00:00:00.000 25.00 12366 2012-01-08 00:00:00.000 2012-01-08 00:00:00.000 58.00 12366 2012-01-08 00:00:00.000 2012-01-09 00:00:00.000 46.00 12366 2012-01-08 00:00:00.000 2012-01-10 00:00:00.000 90.00 12366 2012-01-08 00:00:00.000 2012-01-11 00:00:00.000 52.00 12366 2012-01-08 00:00:00.000 2012-01-12 00:00:00.000 95.00 12366 2012-01-08 00:00:00.000 2012-01-13 00:00:00.000 53.20

我只想要前 3 个 DOS 一个 Admit Date 和它们的 ChargeAmount 的总和。所有其他 DOS 都应该被忽略。

我不知道该怎么做。我想要以下所需的输出。

Acct# AdmitDate ChargeAmount 12366 2011-12-07 00:00:00.000 128.00 12366 2012-01-08 00:00:00.000 200.00

只有 2011-12-17 到 2011-12-19 的录取日期 2011-12-07 需要求和,其他录取日期也一样。 如果您有任何 sql 查询,请与我分享。

提前致谢

【问题讨论】:

    标签: sql-server-2008 sql-server-2005


    【解决方案1】:

    试试:

    SELECT TOP 3 Acct, AdmitDate, SUM(ChargeAmount)
    FROM YourTable
    GROUP BY Acct, AdmitDate
    

    编辑

    SELECT Acct, AdmitDate, SUM(ChargeAmount)
    , RANK() OVER (PARTITION BY AdmitDate ORDER BY AdmitDate DESC)
    FROM YourTable
    GROUP BY Acct, AdmitDate
    

    【讨论】:

    • 两者都误读了这个伙伴。他只想要每个 Acct 和 admissiondate 的三个最大 ChargeAmount。看起来他们中的一个比我一直想学习的分区工作排名更高
    • @DarrenDavies - 您的查询返回一个 AdmitDate 的所有行的 ChargeAmount 的总和,但我只想要一个 AdmitDate 的前三行的总和。我已经展示了上面的例子。请做必要的事情。
    • @DineshKumar 我知道你把请放在那里,但这就像一个交叉需求。
    【解决方案2】:
    选择 帐户#, 录取日期, sum(ChargeAmount) ChargeAmount 从 (选择 帐户#, 录取日期, row_number() over(按 DOS desc 的 AdmitDate 顺序分区) RowNo, 收费金额 从表名 其中Acct# = @AcctNumber ) 作为 t 其中(行号 = 1 或行号 = 2 或行号 = 3) 按Acct#、AdmitDate分组

    我找到了查询。这个查询对我来说很好。感谢您的努力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      相关资源
      最近更新 更多