-1

from 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

列単位caseでのみ実行できます。

できることはUNION、2 つの選択を行い、結果を挿入することです。何かのようなもの

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 に答える
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 に答える