sql - 按日期执行计数和除法
问题描述
仅当我们在一年中至少支付了两笔贷款(支付日期!= null)时,才为每家公司计算资金,除以到达日期的年份。
SELECT F.Id, P.DatArrival, COUNT(*) AS Number
FROM company C
INNER JOIN dbo.Prat P ON P.ID = C.ID
INNER JOIN funding F ON F.IdPrat = P.IdPrat
--WHERE
GROUP BY F.Id, P.DatArrival
所以我想知道我的查询是否很好,我该怎么做另一个我的意思是这个:只有当我们在一年中至少支付了两笔贷款(支付日期!= null)。
解决方案
HAVING 子句将在分组后限制一组行
SELECT F.Id, P.DatArrival, COUNT(*) AS Number
FROM company C
INNER JOIN dbo.Prat P ON P.ID = C.ID
INNER JOIN funding F ON F.IdPrat = P.IdPrat
--WHERE
GROUP BY F.Id, P.DatArrival
HAVING COUNT(disbursementdate) >= 2
您似乎正在翻译您的网页;我不知道付款日期的列名称是什么
此查询仅显示公司 (f.id?) 和年份 (p.dataarrival?),其中一年中有 2 个或多个非空付款日期。如果您的意思是它应该是 2 个付款日期,那是不同的..
此外,如果 DatArrival 是日期(月和日)以及年份,那么您应该从中提取年份,也许使用 YEAR(p.DatArrival)
推荐阅读
- swift - Post A Json object as parameter value in Swift 4 ios using Alamofire
- android - 如何指定哪些 sharedPreferences 自动备份?
- r - 用于多元 LSTM 的 keras 输入形状
- javascript - 未找到模块。“@babel/runtime/helpers/builtin/classCallCheck”无法解决
- html - 如何描述使用 CSS 创建的图像?
- javascript - Qt。从 JS 代码访问应用程序 ts 文件(上下文菜单翻译文本)
- c# - 为什么在我的 IPAddress 字符串中包含前导零时,我从 C# System.Net.IPAddress.Parse() 方法得到不同的结果?
- powershell - 如何使用 powershell 将文件名上的时间戳转换为 UTC 格式?
- android - 为什么启动活动停止?(图片上传活动)
- angular - 在两个组件和服务之间循环数据