需要有关 MS SQL 查询的帮助。我需要显示同一列中两个值之间的差异,其中数据位于最大日期和最小日期之间。例如,如果我有下表:
location| date |amount
------- | ------- |-------
1000 | 2016-01-01 |400
1000 | 2016-01-04 |600
1000 | 2016-01-05 |650
1000 | 2016-01-06 |820
1000 | 2016-01-18 |850
1000 | 2016-01-22 |900
1000 | 2016-01-28 |910
1000 | 2016-01-31 |950
2000 | 2016-01-07 |100
2000 | 2016-01-13 |150
2000 | 2016-01-15 |260
2000 | 2016-01-20 |330
输出应如下所示:
location| difference
------- | -------
1000 | 550
2000 | 230
提前致谢。
最佳答案
您可以如下:
SELECT
location,
MAX(Amount) - MIN(Amount) difference
FROM
Tbl
GROUP BY
location
已更新
SELECT
T.location,
Maxv.Amount - Minv.Amount as difference
FROM
(
SELECT
location,
MIN(date) MinDate,
MAX(date) MaxDate
FROM
Tbl A
GROUP BY
location
) T INNER JOIN
Tbl Minv ON T.MinDate = Minv.date AND T.location = Minv.location INNER JOIN
Tbl Maxv ON T.MaxDate= Maxv.date AND T.location = Maxv.location
关于sql - 同一列中最大日期和最小日期之间的值之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40299086/