这是我的SQL查询:
SELECT run.RN_CYCLE_ID ,test.[TS_EXEC_STATUS] , count(test.[TS_EXEC_STATUS])
FROM [td].[TEST] test
INNER JOIN [td].[RUN] run
ON test.TS_TEST_ID = run.RN_TEST_ID
And run.RN_TEST_ID IN
(SELECT DISTINCT rn_test_id FROM [td].[RUN] WHERE [RN_CYCLE_ID] IN (12973 , 13794) )
GROUP BY test.[TS_EXEC_STATUS] , run.RN_CYCLE_ID order by run.RN_CYCLE_ID;
这显示的数据不仅适用于RN_CYCLE_ID - 12973和13794。
但也适用于其他一些RN_CYCLE_ID。
我该如何解决这个问题?
答案 0 :(得分:0)
SELECT run.RN_CYCLE_ID ,test.[TS_EXEC_STATUS] , count(test.[TS_EXEC_STATUS])
FROM [td].[TEST] test
INNER JOIN [td].[RUN] run
ON test.TS_TEST_ID = run.RN_TEST_ID
WHERE run.[RN_CYCLE_ID] IN (12973 , 13794)
GROUP BY test.[TS_EXEC_STATUS] , run.RN_CYCLE_ID
order by run.RN_CYCLE_ID;
答案 1 :(得分:0)
@ br001: 您好,欢迎来到Stackoverflow,
如果您尝试使用where
代替And
并且它也没有工作,那么我会说您应该分解查询并检查每个级别。
您可以采取以下措施:
1)删除group by
和order by
- 并检查结果。
2)检查inner query
是否给出了正确的结果 - 检查
SELECT DISTINCT rn_test_id FROM [td].[RUN] WHERE [RN_CYCLE_ID] IN (12973 , 13794)
3)只检查一个条件 - 即检查[RN_CYCLE_ID] = 12973
或[RN_CYCLE_ID] = 13794
并检查结果。
4)此外,每一步都要检查您是否有任何损坏的数据。
否则,我猜查询是正确的。(至少我没有看到任何错误)