【问题标题】:how to check the range and number of records in that range without using cursor?如何在不使用游标的情况下检查该范围内的记录范围和数量?
【发布时间】:2010-01-13 06:28:08
【问题描述】:

我有一个包含以下列的表格“RANGES”

   LowRange  as int
   HighRange as int

数据类似于下面

从范围中选择 *

LowRange   HighRange
1          100
101        200
201        300
.
.
.
901        1000

还有一个包含以下列的表格“infoDetails”

Range as INT
amount as money

数据类似于下面

从 infoDetails 中选择 *

Range   Amount
23      34.00
235     44.00
345     34.00
678     100.00
555     100.00
530     100.00
510     100.00

我需要一份格式如下的不带光标的报告。

LowRange    HighRange    Count    Amount

1           100           1        34.00
101         200           0        0.00
.
.
501         600           3        300.00
601         700           1        100.00

欢迎您的建议!!

提前致谢

索莱

【问题讨论】:

    标签: .net asp.net sql cursor report


    【解决方案1】:

    假设您的范围是正确的,并且它们不重叠也不留下间隙:

    SELECT LowRange, HighRange, count(*), SUM(Amount)
    FROM Ranges r
    LEFT JOIN infoDetails d on d.Range between r.LowRange and r.HighRange
    GROUP BY LowRange, HighRange;
    

    【讨论】:

    • 谢谢,但这并不是返回 Range 表的所有行。
    • 使用 LEFT JOIN 返回没有详细信息的范围的行,我编辑了帖子
    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2019-11-24
    • 2013-06-25
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多