0
我有两个表我得到了每个ID上的最大和最小记录。我有以下的查询和输出如何将行转换为列
SELECT s.Id, tabl2.X, tabl2.Y
FROM (SELECT MAX(tabl2.Id) AS tbl2Id, tabl1.Id
FROM tabl2 INNER JOIN
tabl1 ON tabl2.Id = tabl1 .Id
WHERE (CONVERT(date, tabl2.date) = CONVERT(date, GETDATE() - 1)) and tabl1.Id=1
GROUP BY tabl1.Id
UNION
SELECT MIN(tabl2.Id) AS tbl2Id, tabl1.Id
FROM tabl2 INNER JOIN
tabl1 ON tabl2.Id= tabl1.Id
WHERE (CONVERT(date, tabl2.date) = CONVERT(date, GETDATE() - 1)) AND and tabl1.Id=1
GROUP BY tabl1.Id) AS s INNER JOIN
tabl2 ON s.Id= tabl2.Id
Id X Y
1 73.1102528 33.545264
1 74.1240448 32.2604704
,但我想这样
Id X Y X1 Y2
1 73.1102528 33.545264 74.1240448 32.2604704
请查看SQL –
中的'PIVOT'关键字,如果两个表具有相同的ID,则可以使用'Join'而不是'Union'。 – Baalthasarr
@Baalthasarr你是什么意思相同ids.two表有一对多的关系.table 2包含table1 id – user3777928