Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL语句的Select子句中引用子查询_Sql_Tsql_Select_Subquery_Where - Fatal编程技术网

如何在SQL语句的Select子句中引用子查询

如何在SQL语句的Select子句中引用子查询,sql,tsql,select,subquery,where,Sql,Tsql,Select,Subquery,Where,我有一个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.ORDI

我有一个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

在WHERE子句中,如何引用SELECT子句中的子查询进行比较?

如果子查询返回单个值,则只能将其直接放入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  
现在,您可以在Select子句表达式中使用别名pbf和/或jbd引用这两个表中的任何列