使用 SQL Server,是否可以从两行创建一行结果?请参阅以下内容:
样本数据:
+-----+-----------+----------------+------------+---------------------+
| PC | DriveName | AvailableSpace | TotalSpace | PostingDtime |
+-----+-----------+----------------+------------+---------------------+
| 111 | C:\ | 241 GB | 405 GB | 03/01/2024 23:00:00 |
| 111 | D:\ | 507 GB | 546 GB | 03/01/2024 23:00:00 |
| 111 | C:\ | 241 GB | 405 GB | 03/01/2024 0:00:00 |
| 111 | D:\ | 507 GB | 546 GB | 03/01/2024 0:00:00 |
期望的结果
+-----+-----------+----------------+------------+-----------+
| PC | DriveName | AvailableSpace | TotalSpace | DriveName |
+-----+-----------+----------------+------------+-----------+
| 111 | C:\ | 241 GB | 405 GB | D:\ |
| 111 | C:\ | 241 GB | 405 GB | D:\ |
+-----+-----------+----------------+------------+-----------+
我尝试使用枢轴和交叉连接表作为网络上的建议,但我也无法从网络上看到类似的答案。
您可以通过在 PC 和
PostingDTime
上加入来自加入以获得这些结果,然后限制您要查找的驱动器的每个表别名。另外,我猜测还需要更多列,并且在转录数据的原始屏幕截图中被截断。
SELECT t1.PC, t1.DriveName, t1.AvailableSpace, t1.TotalSpace, t2.DriveName, t2.AvailableSpace, t2.TotalSpace
FROM yourtable as t1
LEFT OUTER JOIN yourtable as t2
ON t1.PC = t2.PC
AND t1.PostingDtime = t2.PostingDTime
AND t2.Drive = 'D:\'
WHERE t1.Drive = 'C:\'