2012-06-28 3 views
0

У меня возникли проблемы с созданием запроса Мне нужно вернуть идентификатор учетной записи пользователя из таблицы FamilyAccountDetails, где у учетной записи Family есть хотя бы один ребенок (дочерний элемент - это учетная запись AccountDetails.AccountID равняется FamilyAccountDetails.AccountID), который имеет HoldFlag = 0.Попытка выяснить, как построить запрос в SQL

AccountDetails 
EntID |HoldFlag|AccountID|StatusFlag 

FamilyAccountDetails 
EntID|FamilyAccountID|AccountID|StatusFlag 

SQL:

 Select FD.AccountID, FD.FamilyAccountId 
from Test2TMAdvisor5.dbo.FamilyAccountDetails FD 
     where FD.EnterpriseId = 'TestDan' 
     and AccountId in (Select AccountId from Test2TMAdvisor5.dbo.AccountDetails AD where Ad.AccountID = FD.AccountId and ad.HoldFlag =0) 
+0

Вы проверили это ** [ответ] (http://stackoverflow.com/a/11255337/1451723) **? – Pankaj

ответ

1
SELECT 
    FD.[AccountID] 
    ,FD.[FamilyAccountId] 
FROM 
    FamilyAccountDetails FD 
WHERE 
    FD.[EnterpriseId] = 'TestDan' 
    AND EXISTS 
     (
     SELECT 
      * 
     FROM 
      AccountDetails AD 
     WHERE 
      AD.[AccountID] = FD.[AccountId] 
      AND AD.[HoldFlag] = 0 
     ) 
0

Этот SQL запрос должен извлечь результаты, которые вы хотите:

SELECT 
    FD.[AccountID] 
    ,FD.[FamilyAccountId] 
FROM 
    FamilyAccountDetails FD 
INNER JOIN AccountDetails AD on AD.[AccountID] = FD.[AccountId] 
WHERE 
    FD.EntID = 'TestDan' 
    AND AD.[HoldFlag] = 0 
Смежные вопросы