Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按列分组以比较相似行之间的值_Sql_Sql Server - Fatal编程技术网

Sql 按列分组以比较相似行之间的值

Sql 按列分组以比较相似行之间的值,sql,sql-server,Sql,Sql Server,我正在努力扭转这种局面 +----+---------+-------------------+-----------+ | id | year | desc | amount | +----+---------+-------------------+-----------+ | 1 | 2017 | car | 500 | | 2 | 2017 | car | 550

我正在努力扭转这种局面

+----+---------+-------------------+-----------+
| id | year    | desc              | amount    |
+----+---------+-------------------+-----------+
|  1 | 2017    | car               | 500       |
|  2 | 2017    | car               | 550       |
|  1 | 2018    | car               | 490       |
|  2 | 2018    | car               | 550       |
|  1 | 2017    | house             | 200       |
|  2 | 2017    | house             | 300       |
|  1 | 2018    | house             | 210       |
|  2 | 2018    | house             | 320       |
|  1 | 2019    | house             | 290       |
|  2 | 2019    | house             | 325       |
+----+---------+-------------------+-----------+
像这样的事情

+----+---------+---------+-------------------+-----------+-----------+
| id | year_0  | year_1  | desc              | amount_0  | amount_1  |
+----+---------+---------+-------------------+-----------+-----------+
|  1 | 2017    | 2018    | car               | 500       | 490       |
|  2 | 2017    | 2018    | car               | 550       | 550       |
|  1 | 2017    | 2018    | house             | 200       | 210       |
|  2 | 2017    | 2018    | house             | 300       | 320       |
+----+---------+---------+-------------------+-----------+-----------+

但我很难按照描述将两年和两年的金额归为一组。

您可以通过应用
join
获得结果:

SELECT A.id,a.year year_0,b.year year_1, A.[desc], A.amount amount_0,B.amount amount_1 
FROM 
    (SELECT * FROM YourTable WHERE Year= Datepart(year,GETDATE())-1) AS A
INNER JOIN 
    (SELECT * FROM YourTable WHERE Year= Datepart(year,GETDATE())) AS B
ON A.id=B.id AND A.[desc]=B.[desc]

而且永远不会超过2年?谷歌“pivot sql server”。你也可以利用StackOverflow的优势。StackOverflow希望你这样做,我们也会这样做(如果你不询问硬件,请忽略)。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。欲了解更多信息,请参阅,并选择:)为什么2019号房屋不在结果中?