mysql - "At most one record must be returned by this subquery"我是否搞砸了人际关系?

标签 mysql ms-access

Si 我是 access 和 SQL 新手。 我有我的小数据库(商店系统) 我正在尝试进行一个非常简单的查询,在其中打印出用户的姓名以及他们花费的总和。

 SELECT kl.name, kl.sname, Sum((SELECT onl_Sum FROM online_payment)) AS overall
FROM users AS kl, orders AS pas, payments AS maks
WHERE (((kl.Klnum)=[pas].[Klnum]) AND ((pas.Pasnum)=[maks].[Pasnum]) AND ((maks.paynum)=(SELECT paynum FROM online_payment)))
GROUP BY kl.name, kl.name;

为了更容易理解,我稍微更改了名称。

问题是,如果每个用户只有一笔付款,那么这是可行的,但是当用户有不止一笔付款时,就会出错。

关系是这样的: 用户 -> 订单 -> 付款 -> Online_ payment -> 未在线 用户可以有多个订单,但每个订单可以有一次或多次付款(问题)并且每次付款只能有一次在线支付/非在线支付

我认为我确实搞砸了这里的人际关系,但我不确定。

有更多的表和关系,但没有出现任何问题...

最佳答案

SELECT kl.name, kl.sname, Sum(online.onl_Sum) AS overall
FROM users AS kl JOIN orders AS pas ON pas.Klnum = kl.Klnum
JOIN payments AS maks ON pas.Pasnum=maks.Pasnum 
LEFT JOIN online_payment online ON maks.paynum = online.paynum
GROUP BY kl.name, kl.name;

关于mysql - "At most one record must be returned by this subquery"我是否搞砸了人际关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29536655/

相关文章:

vb.net - 从 VB 在 Access 上运行查询,传递变量或函数作为查询参数

php - 非常奇怪的情况 Can't connect to local MySQL server

mysql - 按来自不同表的字段对查询结果进行排序 (MySQL)

mysql - ORDER BY 相关性,同时使用参数化值

MySQL - 在插入触发器语法之前?

sql - 为 MS-Access 编写一个困难的查询(没有 MINUS 操作,3 表连接)

ms-access - Access 2010表格不会保存记录

c# - 连接时 Jet.OLEDB 的 "Could not find installable ISAM"。打开

javascript - 使用 vba 应用程序在 IE 中的文本字段中输入值

MYSQL 解释 Rows_examined 不匹配