-1

我需要您的帮助才能从 select 中插入,但我的查询对我来说太复杂了。我的逻辑如下


    INSERT INTO TheTable(A,CustomerNo,item,B,C,D)
    SELECT DISTINCT

        case when ((select count(*) from hesap  where CustomerNo=e.CustomerNo)0) then 
select top 1, A,CustomerNo,item+1,B,C,D
from dbo.Table1  order by ekno desc

)  else select 100,e.CustomerNo,e.item,0,e.defterid,'C'
from Table2 e end 
       

但我不能那样做...

4

2 回答 2

0

您可以尝试删除前 1 之后的逗号吗 像这样:

INSERT INTO TheTable(A,CustomerNo,item,B,C,D)
        SELECT DISTINCT
        case when ((select count(*) from hesap  where CustomerNo=e.CustomerNo)0) then 
        select top(1) A,CustomerNo,item+1,B,C,D
        from dbo.Table1  order by ekno desc
        )  
else select 100,e.CustomerNo,e.item,0,e.defterid,'C'
from Table2 e end
于 2013-02-20T08:38:52.363 回答
0

您只能case列的基础上进行

您可以做的是进行UNION两次选择,然后插入结果。就像是

INSERT INTO TheTable(A,CustomerNo,item,B,C,D)
SELECT ... 
 WHERE (select count(*) from hesap  where CustomerNo=e.CustomerNo) = 0
UNION
SELECT select 100,e.CustomerNo,e.item,0,e.defterid,'C'
 WHERE (select count(*) from hesap  where CustomerNo=e.CustomerNo) > 0

对不起,我不能总是关注你的选择,但我希望你明白了。您必须在 UNION 之前将 2 种可能性分开,因此每个原始行只能存在 1 行。

于 2013-02-20T08:38:26.327 回答