2012-09-07 2 views
1

저는 요즘에는 MySQL을 사용하는 사람입니다. 제가 작업하고있는 .NET 프로젝트가 있고 동적으로 생성하고 반환하는 방법을 알 수 없습니다 테이블의 두 필드를 기반으로 테이블의 필드 (열).다른 두 필드의 값을 기반으로 MSSQL에서 필드를 반환하는 방법

단위 표에는 bRentable 및 bRented라는 두 개의 필드가 있으며 bRentable 및 bRented가 0 인 경우 reserved라는 필드를 반환해야합니다. 여기

는 지금까지

/* Units Query */ 
SELECT Units.UnitID, Units.dcWidth, Units.dcLength, Units.dcPushRate, 
     Units.dcStdRate, Units.UnitTypeID, UnitTypes.sTypeName, Units.bRentable  
FROM Units 
INNER JOIN UnitTypes ON Units.UnitTypeID = UnitTypes.UnitTypeID 

어떤 도움을 크게 감상 할 수있는 SQL이다.

+0

달성하려는 목표가 확실하지 않습니다. 더 많은 설명이 귀하의 질문을 이해하는 데 도움이됩니다. – pramodtech

+0

기본적으로 내 SQL 쿼리에서 bRentable = 0인지 bRented = 0인지 확인한 다음 bReserved = 1 열을 반환해야합니다. –

+0

'reserved'필드는 같을 것입니까? 조건 'bRentable = 0 AND bRented = 0'이 거짓이면 반환하겠습니까? – Dennis

답변

1

당신은 당신의 선택 문에 다른 열으로 다음을 추가 할 수 있습니다

(cast case 
when (bRentable = 0 and bRented = 0) then 1 
else 0 
end as bit) as reserved 

편집 : OPS를 기반으로 업데이트 된 댓글 :

SELECT Units.UnitID, Units.dcWidth, Units.dcLength, Units.dcPushRate, 
     Units.dcStdRate, Units.UnitTypeID, UnitTypes.sTypeName, Units.bRentable,(cast case 
    when (bRentable = 0 and bRented = 0) then 1 
    else 0 
    end as bit) as reserved 
FROM Units 
INNER JOIN UnitTypes ON Units.UnitTypeID = UnitTypes.UnitTypeID 
+0

내 쿼리에서이 부분이 어떻게 될까요? –

+0

@CarlWeis가 쿼리를 업데이트했습니다. – danish

+0

감사합니다. 매력처럼 작동했습니다. :) –

0

저장된 proc 또는 사용자 정의 함수를 원하면 아래 쿼리가 도움이 될 것입니다. 쿼리와 명령을 프레임 후 매개 변수와 함께하는 SqlCommand를 사용하여 ADO.NET &에 대한

DECLARE @Rentable BIT 
DECLARE @Rented BIT 
DECLARE @Reserved BIT 

SELECT @Rentable = U.bRentable, @Rented = U.bRented 
    FROM UNITS U INNER JOIN UnitTypes UT ON U.UnitTypeId = UT.UnitTypeId 

IF(@Rentable = 0 AND @Rented = 0) 
BEGIN 
    SET @Reserved = 0 
END 
ELSE 
BEGIN 
    SET @Reserved = 1 
END 

RETURN @Reserved // OR SELECT @Reserved 

검색, 당신은 SqlParameters를 전달할 수 있습니다.

SqlCommand.Parameters.Add(); 
1
SELECT Units.UnitID, Units.dcWidth, Units.dcLength, Units.dcPushRate, 
     Units.dcStdRate, Units.UnitTypeID, UnitTypes.sTypeName, Units.bRentable, 
     CASE When (Units.bRentable = 0 and Units.bRented = 0) then 1 else 0 end as reserved 
FROM Units 
INNER JOIN UnitTypes ON Units.UnitTypeID = UnitTypes.UnitTypeID 

에서이 쿼리 후 당신의 함수 또는 sproc, 당신은 단지 예약 된 필드의 값을 확인할 수 있습니다. 그 1 반환합니다.

관련 문제