2013-07-07 5 views
0

현재 알 수없는 SQL Server에 문제가 있습니다.SQL Server : Declare가 쿼리에서 문제를 일으키고 있습니다.

오류 :

변수에 값을 할당하는 SELECT 문은 데이터 검색 작업

과 결합해서는 안

SQL :

DECLARE @IdUser INT 

Select 
    @IdUser = Id, 
    Username, 
    (Select Count(*) From GagsLikes where Userid = @IdUser And Good = 1) as GagLikes, 
    (Select Count(*) From GagsViews where UserID = @IdUser), 
    (Select Count(*) From Gags Where UserID = @IdUser) as GagViews 
From 
    Users 
Order by 
    GagLikes, GagViews 

감사에서 전진! 당신이 이것을 시도하는 것처럼

+3

이'@IdUser = Id'와 선택의 나머지 부분을 결합해서는 안된다고합니다. – TGlatzer

+2

여기서 무엇을하려고하십니까? 당신은 where 절이 없으며 하나 이상의 사용자가 있다고 가정합니다. 그래서'@ IdUser'에 어떤 값을 할당하려고합니까? – Blorgbeard

+0

@Blorgbeard, 일부 정보가있는 모든 사용자를 표시합니다. 모든 하위 쿼리를 제외하고 일하고 있었다. – Jamie

답변

2

당신은 그 변수를 사용하지 않을 수 있습니다

Select 
    U.Id, 
    U.Username, 
    (Select Count(*) From GagsLikes where Userid = U.Id And Good = 1) as GagLikes, 
    (Select Count(*) From GagsViews where UserID = U.Id), 
    (Select Count(*) From Gags Where UserID = U.Id) as GagViews 
From 
    Users AS U 
Order by 
    GagLikes, GagViews 
+0

고마워요,이 일이 저에게 효과적이었습니다! – Jamie

1

테이블이 두 개 이상의 행을 반환 할 수 있습니다. 테이블이 한 행만 반환하는지 확인하십시오. 그렇지 않으면 여러 개의 ID를 하나의 int 변수에 저장할 수 있습니다.

관련 문제