Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 行号()不工作_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql 行号()不工作

Sql 行号()不工作,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,当我运行这个时,我得到一个错误 “l”附近的语法不正确 这是我的第二张中的贷款l 我是新来的行号(),我一定是错过了什么。如果您知道一种更简单的方法来获取行编号()并为每个c.no选择行1,这也会很有帮助 我在您的查询中使用的是SQL Server 2012,您错误地使用了别名。第一个SELECT语句的别名用作)loan l,此处loan是别名,因此无法识别l,并引发错误 我已将贷款l重命名为别名贷款,并更改了其相关位置: SELECT DISTINCT * FROM (SEL

当我运行这个时,我得到一个错误

“l”附近的语法不正确

这是我的第二张
中的
贷款l

我是新来的
行号()
,我一定是错过了什么。如果您知道一种更简单的方法来获取
行编号()
并为每个c.no选择行1,这也会很有帮助


我在您的查询中使用的是SQL Server 2012

,您错误地使用了别名。第一个
SELECT
语句的别名用作
)loan l
,此处
loan
是别名,因此无法识别
l
,并引发错误

我已将
贷款l
重命名为
别名贷款
,并更改了其相关位置:

SELECT DISTINCT
    *
FROM 
    (SELECT
         *,
         ROW_NUMBER() OVER (PARTITION BY c.no_ ORDER BY app.beacon, l.beacon) AS seqnum 
     FROM
         loan l
     LEFT JOIN 
         cust c ON c.rowno = l.rowno_custloan_cust
     LEFT JOIN 
         Applicant a ON a.CIFId = c.rowno
     LEFT JOIN 
         Application app ON app.ApplicantId = a.ApplicantId 
    ) loan l
LEFT JOIN 
    cust c ON c.rowno = l.rowno_custloan_cust
LEFT JOIN 
    Applicant a ON a.CIFId = c.rowno
LEFT JOIN 
    Application app ON app.ApplicantId = a.ApplicantId
WHERE 
    l.code IN ('DM', 'MF', 'DV', 'MC', 'MO', 'MC','MF','HR','OF','ML','VR','RV','S1','11','y2','y3','y4','y5','y6','y7','y8','y9')
    AND seqnum = 1
ORDER BY
    l.rowno
你只是想要这个吗

SELECT DISTINCT *
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY c.no_ ORDER BY app.beacon, l.beacon) AS seqnum
    FROM loan l
    LEFT JOIN cust c ON c.rowno = l.rowno_custloan_cust
    LEFT JOIN Applicant a ON a.CIFId = c.rowno
    LEFT JOIN Application app ON app.ApplicantId = a.ApplicantId
    ) AliasLoan
LEFT JOIN cust c ON c.rowno = AliasLoan.rowno_custloan_cust
LEFT JOIN Applicant a ON a.CIFId = c.rowno
LEFT JOIN [Application] app ON app.ApplicantId = a.ApplicantId
WHERE AliasLoan.code IN ('DM', 'MF', 'DV', 'MC', 'MO', 'MC','MF','HR','OF','ML','VR','RV','S1','11','y2','y3','y4','y5','y6','y7','y8','y9')
    AND AliasLoan.seqnum = 1
ORDER BY AliasLoan.rowno

查看子查询的别名。这是“贷款l”。如果你想把它作为你的别名(不是我推荐的那样),你需要使用[loan l]。只是一个输入错误,你不能在派生表上使用两个别名。删除单词
loan
,它应该可以工作……您给子查询提供了两个别名
loan
l
。SQL不是这样工作的。你只能给它1。我认为你不需要在外部查询和子查询中进行这些连接。那么我的子查询应该有别名还是主查询?loan是表名,l是别名
SELECT x.*
FROM (SELECT l.*, c.*, a.*, app.*
             ROW_NUMBER() OVER (PARTITION BY c.no_ ORDER BY app.beacon, l.beacon) AS seqnum 
      FROM loan l LEFT JOIN 
           cust c
           ON c.rowno = l.rowno_custloan_cust LEFT JOIN 
           Applicant a
           ON a.CIFId = c.rowno LEFT JOIN
           Application app
           ON app.ApplicantId = a.ApplicantId 
      WHERE l.code IN ('DM', 'MF', 'DV', 'MC', 'MO', 'MC','MF','HR','OF','ML','VR','RV','S1','11','y2','y3','y4','y5','y6','y7','y8','y9')
     ) x
WHERE seqnum = 1
ORDER BY seqnum;