2017-12-23 1 views
1

고객에게 특정 제품이 있는지 확인하고 싶습니다. 그럴 경우 예를 반환하십시오. 그들이 그렇지 않으면, 아니오를 돌려 보내십시오.사례 명세서가 포함 된 SQL 쿼리

그래서, 나는 그것을 반환하는 쿼리를 작성했습니다. 그러나 나는 ProductFamily 이름을 입력하고 싶지 않습니다. 나는 interjoin하고 싶습니다.

SELECT * 
FROM [reference].[ProductFamilyMapping] 
WHERE (isA = 1) 
ORDER BY productfamilyname 

어떻게 간 사례 문을 가입 않습니다

SELECT 
    ID, 
    (CASE 
     WHEN ProductFamily IN ('Product') 
      THEN 'Yes' 
      ELSE 'No' 
    END) AS 'O' 
FROM 
    [source].[Opportunity] A 

다음 쿼리는 ProductFamily 매핑이 있으면 알려 수 있습니다?

+0

게시물을 편집하고 원하는 출력 형식과 일부 입력 입력을 추가 할 수 있습니까? – Vashi

답변

1

열 이름 (예 : "SELECT *"대신 "SELECT mycolumn")을 지정해야하지만 하드 코딩 된 텍스트가 아닌 IN 문에 하위 쿼리를 넣을 수 있습니다.

SELECT 
    ID 
    ,(CASE 
     WHEN ProductFamily IN 
     (SELECT ProductFamily FROM [reference].[ProductFamilyMapping] where (isA = 1)) 
      THEN 'Yes' 
     ELSE 'No' END) as 'O' 
From [source].[Opportunity] A 

([ProductFamilyMapping] [ProductFamilyMapping]의 열 이름도 ProductFamily 임).

1

대안으로 CTE 및 LEFT JOIN을 사용할 수 있습니다. 시험해보십시오.