您需要使用MIN和MAX集合函數來獲取頂部和底部z值,然後按x和y列進行分組。
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'coords1')
BEGIN
DROP TABLE dbo.coords1
END
GO
CREATE TABLE coords1 ([x] DECIMAL(12,4), [y] DECIMAL(12,4), [z] DECIMAL(12,4))
GO
INSERT INTO coords1 (x, y, z)
VALUES(2660000, 1270000, 421.8513),
(2660000, 1270000, -1415.6297),
(2660000, 1269960, 421.0372),
(2660000, 1269960, -1415.7926)
GO
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'coords2')
BEGIN
DROP TABLE dbo.coords2
END
GO
CREATE TABLE coords2 ([x] DECIMAL(12,4), [y] DECIMAL(12,4), [ztop] DECIMAL(12,4), [zbase] DECIMAL(12,4))
GO
INSERT INTO coords2 ([x], [y], [ztop], [zbase])
SELECT [x], [y], MAX([z]) AS [ztop], MIN([z]) AS [zbase]
FROM coords1
GROUP BY x, y
SELECT * FROM coords2
你究竟嘗試了什麼?爲什麼它不起作用? – SchmitzIT 2015-02-06 11:50:15