sql - 在 SQL 中使用 Have 但没有得到任何结果
问题描述
我想要三个表之间的条件结果
Givers, Yateem, TakeMoney
给予者
AccountNo, Mobile
亚特姆
AccountNo, Money
取钱
AccountNo, MoneyTaken
显示所有AccountNo
来自TakeMoney
not inGivers
或 in Givers
but
sum(TakeMoney.MoneyTaken) < Sum(Yateem.Money) * '3'
where TakeMoney.date Like '10-10-2020'
我用过这个,但它不起作用
SELECT
Givers.AccountNo, Givers.GMob,
COALESCE(SUM(Yateem.Money), 0) AS YateemMoney,
COALESCE(SUM(Yateem.Money), 0) * '3' AS MonWant
FROM
Givers
LEFT JOIN
Yateem ON Givers.AccountNo = Yateem.AccountNo
GROUP BY
Givers.AccountNo, Givers.GMob
HAVING
COALESCE(COUNT(Yateem.Money), 0) > '0'
AND (AccountNo NOT IN (SELECT AccountNo FROM TakeMoney
WHERE date LIKE '10-10-2020')
OR COALESCE(COUNT(Yateem.Money), 0) * '3' > (SELECT COALESCE(SUM(MoneyTaken), 0)
FROM TakeMoney
WHERE date LIKE '10-10-2020')
解决方案
数字数据不是字符串:* '3'
=>* 3
COALESCE(Count(Yateem.Money),0) > '0'
Count(Yateem.Money) > 0
与将外部联接转换为内部联接相同。
(AccountNo not in(select
应该导致不明确的列名错误,因为它不合格。
COALESCE(Count(Yateem.Money),0)*'3' > (select COALESCE(Sum(MoneyTaken),0)
将行数与金额进行比较?顺便说一句,再次不需要 COALESCE。
date Like '10-10-2020'
使用 LIKE 进行日期比较?无论date
是日期还是字符串,LIKE 都没用,完全一样=
推荐阅读
- javascript - 超级代理不返回响应
- css - 如何在智能手机上添加水平滚动条?
- javascript - 为什么此按钮单击另一个按钮不起作用
- angularjs - 创建一个数组,然后在 ng-repeat 之后对数据进行排序
- ios - 是否可以使用 AVfoundation 为我自己的应用程序使用 Apple 的支付成功音效?
- android - 如何在另一个 RecyclerView 的项目中实现 RecyclerView
- python - 将 caffe 上的 net forward 从 MATLAB 转换为 Python 的问题
- excel - 如何创建允许使用 UserForm 在列中连续输入数据的数据条目
- nginx - 在 Azure 上处理 Kubernetes 集群的并发请求
- php - 如何将 2 个字符串插入数据库的 1 个列中?(代码点火器)