你可以做一个查询CTE
,如:
DECLARE @T TABLE (ID INT, Date DATE, Code INT, Amt DECIMAL(4,1), Type CHAR(1));
INSERT INTO @T VALUES
(1, '2017-01-06', 56, 100, 'A'),
(2, '2017-03-06', 57, 200, 'B'),
(3, '2017-05-06', 58, 300, 'C'),
(4, '2017-07-06', 59, 400, 'D');
WITH CTE AS(
SELECT ID, DATE, CODE /* I don't know how your query looks like*/
FROM @T
WHERE ID IN (1,2)
)
SELECT *
FROM @T
WHERE ID IN (SELECT ID FROM CTE);
结果:
+----+---------------------+------+-------+------+
| ID | Date | Code | Amt | Type |
+----+---------------------+------+-------+------+
| 1 | 06.01.2017 00:00:00 | 56 | 100,0 | A |
| 2 | 06.03.2017 00:00:00 | 57 | 200,0 | B |
+----+---------------------+------+-------+------+
或使用子查询与INNER JOIN
像:
DECLARE @T TABLE (ID INT, Date DATE, Code INT, Amt DECIMAL(4,1), Type CHAR(1));
INSERT INTO @T VALUES
(1, '2017-01-06', 56, 100, 'A'),
(2, '2017-03-06', 57, 200, 'B'),
(3, '2017-05-06', 58, 300, 'C'),
(4, '2017-07-06', 59, 400, 'D');
SELECT TT.*
FROM @T TT INNER JOIN
(SELECT ID, DATE, CODE /* I don't know how your query looks like*/
FROM @T
WHERE ID IN (1,2)) T ON TT.ID = T.ID;
结果:
+----+---------------------+------+-------+------+
| ID | Date | Code | Amt | Type |
+----+---------------------+------+-------+------+
| 1 | 06.01.2017 00:00:00 | 56 | 100,0 | A |
| 2 | 06.03.2017 00:00:00 | 57 | 200,0 | B |
+----+---------------------+------+-------+------+
提示:'INNER JOIN'。 –