2014-12-02 38 views
6

我發現下面UPDATE聲明一個問題,我的SQL ServerSQL Server的更新與INNER JOIN結合自身

UPDATE 
    table_a 
SET 
    table_a.More = -1 
FROM 
    table_a 
INNER JOIN 
    (SELECT column1, COUNT(*) AS More 
     FROM table_a 
     GROUP BY column1) AS table_b 
ON 
    table_a.column1 = table_b.column1 

注意,INNER JOIN部分採用表本身。在此之後UPDATE我期待有一些行有More等於-1。但我只有1 s。我100%確定column1有重複。我錯過了什麼?

我發現的問題是,有些人定義列Morebit類型!

+1

請提供您的示例輸入 – 2014-12-02 17:45:46

+8

嗯,我發現了這個問題。 'More'被某些S * @#@#A @#$ @定義爲'bit',浪費我寶貴時間中的3個! – 2014-12-02 19:48:41

+7

嗨,約翰,你能回答你自己的問題,並提供你如何解決這個問題的細節,它可能會幫助其他人堅持這個問題。 – 2015-04-22 21:59:07

回答

1

我這裏的問題是數據類型,在一個位類型中,你只能有1或0或NULL。將數據類型更改爲int