sql-server - 在声明的表上选择不同的
问题描述
我需要创建连接查询将通过检查其他表中的数据来获取数据。
首先,我声明(并填写)两个带有 ID 列表的表,我将检查其他表。在下一步 (2) 中,我声明了新表并填充了通过一些检查参数获得的值。此表仅包含一列 (ID)。填充后,如果我SELECT DISTINCT
从该表执行查询,我将获得真正唯一的 ID。没关系。
但在下一步 (3) 中,我声明了多个表并用 3 个表填充它。当然,它包含许多重复项。但我必须创建此查询以进行检查和连接。之后,如果我执行select distinct h from @NonUnicalConcat
它会返回许多重复的 ID。
我做错了什么?哪里有错误?
USE CurrentBase;
--STEP 1
DECLARE @TempCSTable TABLE(TempTableIDColumn int);
INSERT INTO @TempCSTable VALUES('3'),('4');
DECLARE @TempCVTable TABLE(TempTableIDColumn int);
INSERT INTO @TempCVTable VALUES('2'),('13');
--STEP 2
DECLARE @TempIdTable TABLE(id int);
INSERT INTO @TempIdTable
SELECT TT1.ID
FROM Table1 AS TT1
LEFT OUTER JOIN Table2 ON Table2.ID = TT1.OptionalColumn
LEFT OUTER JOIN Table3 AS TT2 ON TT2.ID = TT1.OptionalColumn
LEFT OUTER JOIN Table4 AS TT3 ON TT3.ID = TT2.OptionalColumn
WHERE TT1.ValueDate > '2020-06-30'
AND TT1.ValueDate < '2020-08-04'
AND TT1.OptBool = '1'
AND TT1.OptBool2 = '0'
AND EXISTS
(
SELECT Table5.ID
FROM Table5
WHERE Table5.ID = TT1.ID
AND Table5.CV IN
(
SELECT TempTableIDColumn
FROM @TempCVTable
)
AND Table5.OptBool = '1'
)
AND EXISTS
(
SELECT Table6.ID
FROM Table6
WHERE Table6.IID = TT3.ID
AND Table6.CS IN
(
SELECT TempTableIDColumn
FROM @TempCSTable
)
);
SELECT distinct * FROM @TempIdTable;--this code realy select distinct
--STEP 3
DECLARE @NonUnicalConcat TABLE(c int, s int, h int);
INSERT INTO @NonUnicalConcat
SELECT TT1.TempTableIDColumn AS cc,
TT2.TempTableIDColumn AS ss,
TT3.id AS hh
FROM @TempCVTable AS TT1,
@TempCSTable AS TT2,
@TempIdTable AS TT3
WHERE NOT EXISTS
(
SELECT HID
FROM OtherBase.dbo.Table1
WHERE HID = TT3.id
AND CS = TT2.TempTableIDColumn
AND CV = TT1.TempTableIDColumn
);
select distinct h from @NonUnicalConcat;--this code return many duplicates
解决方案
推荐阅读
- c# - 使用相同的 webdriver 实例
- google-sheets - 如何获取所有非空列及其内容?
- csv - Redshift外部表不处理字段中的换行符
- java - 我如何使用highchart在jsp中的spring mvc中绘制图形
- python - 多类逻辑回归 - 实施问题
- c - GTK3:没有 trigger_event 的 gtk_menu_popup_at_pointer()
- react-native - 使用 react-native-navigation 反应原生导航不起作用
- java - 将生成的 Zip 的 Zip 提供给客户端
- groovy - JMeter-如何在多个独立的测试计划之间共享 groovy 脚本
- amazon-web-services - 创建 openshift 集群 aws 失败