2015-10-28 172 views
0

我想使用select語句插入行到表中以查詢特定數據,但使用不同表中的數據作爲插入的一部分。 〔實施例: 表A:其中數據被查詢並複製 表B客戶端:MailOptOut其中數據被插入用子查詢插入並選擇

我想在MailOptOut表中插入兩個值,硬編碼的字段「夏季促銷」,然後將ACCT#從客戶表(client.acct_no)

這裏是我的代碼不工作:

INSERT INTO PL00.DBO.mailcoptout (MC_NAME, ACCT_NO) 
VALUES 
('Summer Service Promo', client.acct_no), 
('Referral Rewards Doubled', client.acct_no), 
('Holiday Decorating 1', client.acct_no), 
('Holiday Decorating 2', client.acct_no) 
select client.acct_no, mailcoptout.* from plshared.dbo.client left join PL00.DBO.mailcoptout on mailcoptout.ACCT_NO = client.ACCT_NO 
where client.U_SOLICIT = 'y' 
and client.acct_no = '131335' 
and client.INACTIVE <> 'y' 
and mailcoptout.MC_NAME is null 
+0

拋出什麼錯誤? – raumkrieger

+0

請包括錯誤(如果有的話),並解釋什麼是不工作。 – Reinard

+1

你的'insert'語句有兩列被插入,誰知道你嘗試了多少。請編輯您的問題並提供樣本數據。另外,將問題標記爲您正在使用的數據庫。 –

回答

1

難道這就是你想幹什麼?

INSERT INTO PL00.DBO.mailcoptout (MC_NAME, ACCT_NO) 
    select x.mc_name, client.acct_no 
    from plshared.dbo.client c left join 
     PL00.DBO.mailcoptout mc 
     on mailcoptout.ACCT_NO = client.ACCT_NO cross join 
     (select 'Summer Service Promo' as MC_NAME union all, 
      select 'Referral Rewards Doubled' as MC_NAME union all 
      select 'Holiday Decorating 1' as MC_NAME union all 
      select 'Holiday Decorating 2' as MC_NAME 
     ) x 
    where c.U_SOLICIT = 'y' and 
      c.acct_no = '131335' and 
      c.INACTIVE <> 'y' and 
      mc.MC_NAME is null; 
+0

我試過這個,並得到這個錯誤:消息4104,級別16,狀態1,行5 多部分標識符「mailcoptout.ACCT_NO」無法綁定。 Msg 4104,Level 16,State 1,Line 5 無法綁定多部分標識符「client.ACCT_NO」。 Msg 4104,Level 16,State 1,Line 2 無法綁定多部分標識符「client.acct_no」。 –

+0

調整了一些錯誤:從plshared.dbo.clientÇINSERT INTO PL00.DBO.mailcoptout(MC_NAME,ACCT_NO) 選擇x.mc_name,c.acct_no 留在mc.ACCT_NO加入 PL00.DBO.mailcoptout MC = c.ACCT_NO交叉聯接 (選擇「夏季服務促銷」作爲MC_NAME UNION ALL 選擇爲MC_NAME聯盟「加倍推薦獎勵」的所有 選擇「假日裝飾1」 MC_NAME UNION ALL 選擇「假日裝飾2」 MC_NAME ) x 其中c.U_SOLICIT ='y'和 c.INACTIVE <>'y'和 mc.MC_NAME爲空; –