2016-01-21 4 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

колонка (s) Можете ли вы описать, что именно вы пытаетесь сделать здесь? Причина может быть простым способом достижения того, чего вы, возможно, пытаетесь достичь через этот запрос. – singhsac

+0

Похоже, вы хотите установить значение lead_id равным null, если в телефоне есть несколько строк? – dotjoe

+0

@дотье жаль мою ошибку. lead2 = lead1 ... no lead1 = lead2 –

ответ

0

Все, что вам нужно сделать, это установить таблицу в UPDATE, где вы хотите изменить значение. Похоже, вы пытаетесь разобраться с lead_id с несколькими записями PhoneHome. Следующий запрос может возвращать результирующий набор:

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

Смежные вопросы