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

唐·弗雷特·布雷特

无法弄清楚我在做什么错。它说字段HasNoteDate无效。我只希望它在有日期的情况下返回1,在没有日期的情况下返回0,并且我希望将其分组以便可以得到计数和贷款金额的总和。我看过按案例分组的stackoverflow答案,但没有一个能为我解决。谢谢!

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łyaBursov)

SQL查询执行的逻辑不像普通的编程语言那么简单

这是查询的示例执行阶段:

  1. 在表中执行联接 FROM CLAUSE
  2. 执行GROUP BY-这将导致错误,HasNoteDate目前尚未定义
  3. 履行 ORDER BY
  4. 执行SELECT-仅在此阶段HasNoteDate定义

因此,您不能HasNoteDate在GROUP BY中使用未定义的列,必须将其替换为您的statement (CASE WHEN dbo.WORKFLOW.NOTE_DATE IS NULL THEN 0 ELSE 1 END),然后sql server将能够GROUP

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

SQL Server中的CASE和GROUP BY

来自分类Dev

使用 LISTAGG 和 CASE 语句的 SQL 查询

来自分类Dev

使用GROUP BY和IN的SQL查询太慢

来自分类Dev

使用 Group By 和 Being 的 SQL 查询

来自分类Dev

使用CASE的查询过滤器选择NULL字段[SQL Server]

来自分类Dev

使用SQL Server进行DISTINCT和GROUP BY

来自分类Dev

使用SQL Server的无效列名

来自分类Dev

使用AVG(DATEDIFF)和CASE进行SQL查询

来自分类Dev

使用嵌套子查询和GROUP BY的SQL查询

来自分类Dev

使用SQL查询拆分字段

来自分类Dev

嵌套查询中SQL Server的无效列名

来自分类Dev

SQL group by和max等字段

来自分类Dev

使用sum和group by将sql查询转换为linq

来自分类Dev

在同一SQL查询中使用WHERE,HAVING和GROUP BY

来自分类Dev

使用SQL Server,GROUP BY

来自分类Dev

使用“CASE WHEN”和“GROUP BY”组合创建查询

来自分类Dev

如何使用“Case When”和“Group By”创建 Mysql 查询

来自分类Dev

SQL Server-使用PIVOT查询比较2个表中的字段

来自分类Dev

如何使用多个“ CASE”改进此SQL Server查询?

来自分类Dev

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

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL Server查询按字段分组错误

来自分类Dev

SQL:存储和查询“ cron”字段

来自分类Dev

如何使用SQL Server查询?

来自分类Dev

LINQ查询从SQL转换,SQL使用包含GROUP BY和COUNT的子查询

来自分类Dev

LINQ查询从SQL转换,SQL使用包含GROUP BY和COUNT的子查询

来自分类Dev

使用group by的oracle sql查询