2014-08-28 4 views
1

У меня есть SQL-запрос, который выглядит следующим образом:Как Ссылка подзапроса в Select пункта заявления SQL

DECLARE @I int 

SET @I = (SELECT W.PMon FROM WHouse.dbo.Rundate AS W) 

SELECT L.ACCOUNT, 
L.ID, 
L.OPENDATE, 
L.ORIGINALBALANCE, 
L.BALANCE, 
L.DUEDATE, 
(SELECT N.BIRTHDATE FROM Sym.dbo.NAME AS N WHERE N.Account = L.Account and N.ORDINAL = 0) AS 'PBD', 
(SELECT N.BIRTHDATE FROM Sym.dbo.LOANNAME AS N WHERE L.Account = N.Account and L.ID = N.PARENTID and N.TYPE IN (01, 16, 20, 21)) AS 'JBD', 
L.CREDITSCORE 

FROM Sym.dbo.Loan AS L 
JOIN Sym.dbo.Account AS A 
ON L.Account = A.Account 
WHERE L.TYPE IN (0, 1, 2, 3, 14, 15, 23) and L.BALANCE > 0 and L.CHARGEOFFDATE IS NULL and L.CLOSEDATE IS NULL and A.TYPE <> 5 

В ИНЕКЕ, как я ссылаться на подзапросах в ЗЕЬЕСТЕ сделать сравнения?

ответ

2

Вы можете помещать подзапросы непосредственно в предложение select, если они возвращают одно значение. Если вы хотите ссылаться на столбцы в подзапросах в выражениях как в предложении select, так и в предложении where, вам нужно поместить подзапросы в предложение From с помощью псевдонимов ... или в виде объединенных таблиц с помощью условия в предложении On:

Просто поместите подзапрос в соединение в предложении From.

SELECT L.ACCOUNT, L.ID,L.OPENDATE, 
    L.ORIGINALBALANCE, L.BALANCE, 
    L.DUEDATE, L.CREDITSCORE, 
    pbd.Birthdate PBDBirthdate, 
    jbd.Birthdate JBDBirthdate 
FROM Sym.dbo.Loan AS L 
    JOIN Sym.dbo.Account AS A 
     ON A.Account = L.Account 
    Join Sym.dbo.NAME pbd 
     On pbd.Account = L.Account 
     and pbd.ORDINAL = 0 
    Join Sym.dbo.LOANNAME jbd 
     On jbd.Account = L.Account 
     and jbd.PARENTID = L.ID 
     and jbd.TYPE IN (01, 16, 20, 21)  
WHERE L.TYPE IN (0, 1, 2, 3, 14, 15, 23) 
    and L.BALANCE > 0 
    and L.CHARGEOFFDATE IS NULL 

Теперь вы можете ссылаться на столбцы в этих двух таблиц с использованием псевдонимов PBF и/или JBD в Select п выражения так, как вам может понадобиться

Смежные вопросы