SQL Query返回基于层的值

时间:2017-02-27 05:50:27

标签: sql tsql database-design

我有一个数据库,其中包含基于等级定价的表格,具体取决于购买的数量示例:(1-10)是5美元,(11-15)是10美元,16是15美元,17-20是20美元

该表的结构如下:

数字int, cost int

表格的一个例子:

号码|成本

1 | 1
2 | 1
3 | 1
4 | 2
5 | 2
6 | 2
7 | 3
8 | 4
9 | 7
10 | 7

有没有办法让我编写一个查询,以便我可以以min,max和cost格式返回这些数字,例如在上面的示例中运行查询将返回:

MIN | MAX |成本
----- | ----- | ----
1 | 10 | 5
11 | 15 | 10个
16 | 16 | 15个
17 | 20 | 20

此外,我不确定这是否是这种表的最佳结构。任何和所有的帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个。它相当凌乱。刚尝试使用我的Server Management Studio。 更新:为了更好的可读性。

SELECT Mininum.Min, Maximum.Max, Mininum.Cost
FROM 
(
    SELECT MIN([Number]) as 'Min', Cost
    FROM [TestDB].[dbo].[Testing]
    GROUP BY Cost
) as [Mininum]
INNER JOIN
(
    SELECT MAX([Number]) as 'Max', Cost
    FROM [TestDB].[dbo].[Testing]
    GROUP BY Cost
) as [Maximum]
ON Mininum.Cost = Maximum.Cost