2014-12-02 39 views
6

znalazłem problem z następującym UPDATE oświadczenia w moim SQL ServerSQL Server Update łączy się z INNER JOIN z Sam

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 

Należy zauważyć, że część sprzężenia wewnętrznego wykorzystuje samej tabeli. Po tym UPDATE oczekuję, że niektóre wiersze mają wartość More równą -1. Ale mam tylko 1 s. Jestem w 100% pewien, że duplikaty mają column1. czego mi brakuje?

Problemem, który odkryłem, jest to, że jakiś facet zdefiniował kolumnę More jako typ bit!

+1

proszę podać swój przykładowy wkład –

+8

Cóż, znalazłem problem. 'Więcej' jest zdefiniowany jako' bit' przez niektóre S * @ #! # A @ # $ @ i marnuje 3 moich cennych godzin! –

+7

Cześć John, czy mógłbyś odpowiedzieć na własne pytanie i podać szczegóły tego, jak to rozwiązałeś, To może pomóc komuś, kto utknął z tym problemem. –

Odpowiedz

1

I tu problemem jest typ danych, w typie bitowym można mieć tylko 1 lub 0 lub NULL również. Zmień typ danych na int