如何在不使用游标的情况下检查该范围内的记录范围和数量?

时间:2010-01-13 06:28:09

标签: .net asp.net sql cursor report

我有一个表“RANGES”,其中包含以下列

   LowRange  as int
   HighRange as int

,数据类似于以下

从Ranges中选择*

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

欢迎您的建议!!

先谢谢

Solai

1 个答案:

答案 0 :(得分: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;