2016-01-21 82 views
0

您好我想从LEAD2复制到LEAD1。我有查询选择这些列,但我不知道如何更新set LEAD2=LEAD1。以下是选择查询:在内部连接的SQL更新和

SELECT 
     a.lead_id AS LEAD1 
     , b.lead_id AS LEAD2 
    FROM 
     dbo.spirulina AS a 
      INNER JOIN dbo.spirulina AS b 
       ON a.PHONEHOME = b.PHONEHOME 
    WHERE 
     (a.lead_id IS NOT NULL) 
     AND (b.lead_id IS NULL) 
    GROUP BY 
     a.lead_id 
     , b.lead_id 
    HAVING 
     (COUNT(a.PHONEHOME) > 1) 
+1

你能描述究竟是什么你想在这里做什么?因为可能有一种简单的方法来实现您可能试图通过此查询来实现的内容。 – singhsac

+0

看起来像你想设置lead_id为null当一个phonehome在多行? – dotjoe

+0

@dotjoe对不起我的错。 lead2 = lead1 ... no lead1 = lead2 –

回答

0

您所要做的就是将表格设置为UPDATE更改值的位置。从看起来你试图用多个PhoneHome条目来处理lead_id。下面的查询可能返回结果集:

SELECT 
    PHONEHOME 
    , COUNT(1)[Count] 
FROM 
    dbo.spirulina 
GROUP BY 
    PHONEHOME 
HAVING 
    COUNT(PHONEHOME) > 1 

如果这些是你要更新的记录,只需更新表,并设置列(或多个)值

UPDATE 
    dbo.spirulina 
SET 
    lead_id = NULL 
FROM 
    dbo.spirulina 
GROUP BY 
    PHONEHOME 
HAVING 
    COUNT(PHONEHOME) > 1 
+0

是的,我已经通过例外来做到这一点:靠近组的错误语法 –

+0

RDMS正在使用什么?它确实取决于某些句柄在更新语句中的不同联接。请指教。请参阅上面的@ TT。的评论。 – Parfait