SQL Server query with CASE and GROUP BY, field invalid?

DontFretBrett

Can't figure out what I'm doing wrong here. It says field HasNoteDate is invalid. I just want it to return 1 if there's a date, 0 if there's not and I wanted it grouped so I can get the counts and the sum of loan amounts. I've looked at the stackoverflow answers for grouping by a case and none of them are solving it for me. Thanks!

SELECT    dbo.BDONAMES.UserID, dbo.BRKRMAST.Tier, dbo.BDONAMES.REGION, COUNT(*) AS TierRegionCount, 
                      SUM(dbo.LOAN.LOAN_AMT) AS LoanAmtSum, dbo.LOAN.DEAL_STATUS, CASE WHEN dbo.WORKFLOW.NOTE_DATE IS NULL 
                      THEN 0 ELSE 1 END AS HasNoteDate
FROM         dbo.BRKRMAST INNER JOIN
                      dbo.BRKRREF ON dbo.BRKRMAST.BRKRMASTID = dbo.BRKRREF.BRKRMASTID INNER JOIN
                      dbo.LOAN ON dbo.BRKRREF.LoanId = dbo.LOAN.LoanId INNER JOIN
                      dbo.WORKFLOW ON dbo.LOAN.LoanId = dbo.WORKFLOW.LoanId LEFT OUTER JOIN
                      dbo.BDONAMES ON dbo.BRKRMAST.BDONAMESID = dbo.BDONAMES.BDONAMESID
WHERE     (LEN(dbo.BDONAMES.UserID) > 0) AND (dbo.BRKRMAST.Tier > 0) AND (LEN(dbo.BDONAMES.REGION) > 0)
GROUP BY dbo.BDONAMES.UserID, dbo.BRKRMAST.Tier, dbo.BDONAMES.REGION, dbo.LOAN.LOAN_AMT, dbo.LOAN.DEAL_STATUS, HasNoteDate
ORDER BY dbo.BDONAMES.UserID, dbo.BRKRMAST.Tier, dbo.BDONAMES.REGION
Iłya Bursov

logic of SQL query execution is not straightforward as common programming languages

here are sample execution stages for your query:

  1. perform join on tables in FROM CLAUSE
  2. perform GROUP BY - this will cause error, as HasNoteDate is not defined for this moment
  3. perform ORDER BY
  4. perform SELECT - only during this stage column HasNoteDate is defined

so, you cannot use undefined column HasNoteDate in GROUP BY, you have to replace it with your statement (CASE WHEN dbo.WORKFLOW.NOTE_DATE IS NULL THEN 0 ELSE 1 END), then sql server will be able to GROUP

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server中的CASE和GROUP BY

来自分类Dev

使用CASE和GROUP BY的SQL Server查询,字段无效?

来自分类Dev

使用CASE和GROUP BY的SQL Server查询,字段无效?

来自分类Dev

SELECT CASE SQL 中的 Group BY

来自分类Dev

SQL group by case 语句崩溃

来自分类Dev

仅在 SQL Server Management Studio 中的 group by 语句中显示 case 语句的最大值

来自分类Dev

使用SQL Server,GROUP BY

来自分类Dev

SQL Server Group By 乘法

来自分类Dev

GROUP BY - SQL Server

来自分类Dev

SQL Server 与 GROUP BY 的连接

来自分类Dev

SQL Server case when或enum

来自分类Dev

SQL SERVER中的CASE子句

来自分类Dev

SQL Server:COUNT(DISTINCT(CASE))

来自分类Dev

Sql Server 奇怪的 CASE 语句

来自分类Dev

Query Sql Server Comments

来自分类Dev

需要SQL Group by Query帮助

来自分类Dev

带有SUM CASE语句的SQL GROUP BY

来自分类Dev

在SQL Server中使用GROUP BY

来自分类Dev

在SQL Server中使用GROUP BY

来自分类Dev

SQL Server GROUP BY多列

来自分类Dev

SQL Server query dry run

来自分类Dev

SQL Server Nested Query Performance

来自分类Dev

Query XML in SQL Server 2014

来自分类Dev

SQL Server Case语句和聚合功能

来自分类Dev

SQL Server:长CASE语句的替代方法

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

SQL Server CASE和IN where子句

来自分类Dev

SQL Server:case语句中的昂贵查询

来自分类Dev

SQL Server TVP与Where / Case语句合并