我有以下查询,我正在处理。目标是在不插入重复项的情况下插入符合where子句中的条件的[AppID]和随机选择的[ufid]。我研究了TABLESAMPLE和Random(),但无法弄清楚。SQL INSERT ISSUE WITH CTE
例如:#mult_nuf表有4个AppID = 123456和Major ='GEBOX'的记录。 #temp_rUF将在ufid ='UF7'和sh_plan ='GEBOX'的表中有一个记录。我需要将另一个[sh_plan]的[App_ID]和[ufid]插入临时表中WHERE [Major ]和[sh_plan]不一样。到目前为止,每个[ufid]的记录都以相同的[Appid]插入。我在表中有45个[ufid},所以临时表有45个相同的[AppID]记录。应该只有4个纪录为[的AppID]与4个随机[UFID] ..
mult_nuf表
AppID Major
004540036 GEBOX
004540036 GEBOX
004540036 GEBOX
004540036 GEBOX
的#temp_ruf表
ufID sh_Plan
U1 GECCE
U2 REDSG
U5 GFRTY
U7 GEBOX
U8 JKIUTY
样本输出应该像
App_ID ufID
004540036 U1
004540036 U2
004540036 U5
004540036 U8
查询我正在与
WITH Match_NomineesWithReviewers AS
(
SELECT DISTINCT
[AppID],
RTRIM(Major) AS Major
FROM
#mult_nuf
)
SELECT
m.[AppID],
r.ufid
INTO
#TempNTable
FROM
Match_NWithR m
CROSS APPLY
(SELECT ir.ufid
FROM #temp_rUF ir
WHERE m.Major <> ir.sh_plan) r
这个问题确实需要根据这些数据样本数据和样本输出。 –
我添加了示例数据和输出。 thxs – Rugster
这很混乱,因为你描述的内容与你提供的数据不匹配。例如sh_plan和ufid在你的例子中没有被命名。 – SQLChao