4

我在表中有以下记录。查看第 1 列和第 3 列,这些数据之间存在联系。

Column1           Column2          Column3
----------------- ---------------- --------------------
20003             PurchaseTrx      50001
20008             PurchaseTrx      50008
20011             ProductionTrx    90103
20011             ProductionTrx    90085
20026             PurchaseTrx      50021
20026             ProductionTrx    90145
20053             PurchaseTrx      50032
50008             PurchaseTrx      20008
50001             PurchaseTrx      20003
90085             SalesTrx         20011
90085             ProductionTrx    90103
90145             SalesTrx         20026
90145             PurchaseTrx      50021

我应该如何进行可以将这些数据链接在一起的查询?例如,这些数据是相互链接的......

  1. 20003-50001 和 50001-20003
  2. 20008-50008 和 50008-20008
  3. 20011-90085、20011-90103、90085-20011、90085-90103等

谢谢

4

1 回答 1

2

表结构和数据:

CREATE TABLE [MyTable]
(
    [Column1] INT,
    [Column2] VARCHAR(20),
    [Column3] INT
)

INSERT [MyTable]    VALUES(20003, 'PurchaseTrx', 50001)
INSERT [MyTable]    VALUES(20008, 'PurchaseTrx', 50008)
INSERT [MyTable]    VALUES(20011, 'ProductionTrx', 90103)
INSERT [MyTable]    VALUES(20011, 'ProductionTrx', 90085)
INSERT [MyTable]    VALUES(20026, 'PurchaseTrx', 50021)
INSERT [MyTable]    VALUES(20026, 'ProductionTrx', 90145)
INSERT [MyTable]    VALUES(20053, 'PurchaseTrx', 50032)
INSERT [MyTable]    VALUES(50008, 'PurchaseTrx', 20008)
INSERT [MyTable]    VALUES(50001, 'PurchaseTrx', 20003)
INSERT [MyTable]    VALUES(90085, 'SalesTrx', 20011)
INSERT [MyTable]    VALUES(90085, 'ProductionTrx', 90103)
INSERT [MyTable]    VALUES(90145, 'SalesTrx', 20026)
INSERT [MyTable]    VALUES(90145, 'PurchaseTrx', 50021)

自联接查询示例:

SELECT CONVERT(VARCHAR(10),t1.[Column1]) + '-' + CONVERT(VARCHAR(10),t2.[Column1]), t1.[Column2]
FROM [MyTable] t1
INNER JOIN [MyTable] t2
    ON t1.[Column1] = t2.Column3
于 2013-06-05T11:01:09.787 回答