USE JoinTest
IF EXISTS (SELECT * FROM sysobjects WHERE object_id =
OBJECT_ID(N'[dbo].[JoinTest]') AND type in (N'U'))
DROP TABLE [dbo].[JoinTest]
GO
CREATE TABLE [dbo].[JoinTest](
[Column1] [nvarchar](50) COLLATE Japanese_CI_AS NULL,
[Column2] [nvarchar](50) COLLATE Japanese_CI_AS NULL,
[Column3] [nvarchar](50) COLLATE Japanese_CI_AS NULL
) ON [PRIMARY]
GO
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A001','1','100')
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A001','2','-100')
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A001','3','100')
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A002','1','100')
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A002','2','-100')
INSERT INTO [dbo].[JoinTest] ([Column1],[Column2],[Column3])
VALUES ('A002','3','-100')
GO
SELECT * FROM [JoinTest]
GO
SELECT * FROM
((SELECT [Column1], Max(Column2) AS [MaxColumn2] FROM
[dbo].[JoinTEST] WHERE [Column3] < 0 GROUP BY [Column1]) AS [TABLE1]
INNER JOIN
(SELECT [Column1], Max(Column2) AS [MaxColumn2] FROM [dbo].[JoinTEST]
GROUP BY [Column1]) AS [TABLE2]
ON
[TABLE1].[Column1] = [TABLE2].[Column1]
AND [TABLE1].[MaxColumn2] = [TABLE2].[MaxColumn2])
GO