Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从一个引用另一个ID的表中获取总计_Mysql_Sql_Ms Access - Fatal编程技术网

Mysql 从一个引用另一个ID的表中获取总计

Mysql 从一个引用另一个ID的表中获取总计,mysql,sql,ms-access,Mysql,Sql,Ms Access,我需要在我的一个表(贷款)上得到一个总数,该表有多个具有相同id的“userid”,因此一个用户可以获得多本书,但也意味着他们可以对不同的书处以多笔罚款(如下图所示) 我想列出每个用户,然后列出他们所欠的罚款总额,但我不知道怎么做 这是我的用户数据库,也可供参考 我已经使用了所有的用户和书籍,我不知道如何才能在下一个目标中做类似的事情 SELECT PATRON.Name, BOOK.CallNo, BOOK.Title, BOOK.Subject FROM (BOOK INNER JOIN

我需要在我的一个表(贷款)上得到一个总数,该表有多个具有相同id的“userid”,因此一个用户可以获得多本书,但也意味着他们可以对不同的书处以多笔罚款(如下图所示)

我想列出每个用户,然后列出他们所欠的罚款总额,但我不知道怎么做

这是我的用户数据库,也可供参考

我已经使用了所有的用户和书籍,我不知道如何才能在下一个目标中做类似的事情

SELECT PATRON.Name, BOOK.CallNo, BOOK.Title, BOOK.Subject
FROM (BOOK INNER JOIN LOAN ON BOOK.CallNo = LOAN.CallNo) INNER JOIN PATRON ON LOAN.UserID = PATRON.USerID;

好的,我们只能猜测其他两个表中的数据类型,因为您没有给我们它们的屏幕截图,所以我将给出最基本的答案,然后从那里开始计算

我想列出每个用户,然后列出他们所欠的罚款总额

从那里,如果您需要
用户
表中的信息(假设它存储了
用户ID
),您可以执行
内部联接
,它看起来像:

SELECT LOAN.UserID, 
       Sum(LOAN.Fine) AS SumOfFine,
       PATRON.[Name],
       PATRON.Age
FROM LOAN
     INNER JOIN PATRON
     ON LOAN.UserID = PATRON.UserID
GROUP BY LOAN.UserID, PATRON.[Name], Patron.Age;

我不确定如何设置
BOOK
表。

join子句中的括号表示MS Access,但您应该根据实际使用的数据库清楚地标记问题。我不确定您的意思,我想使用一个类似于我在最后列出的MySQL语句来实现我的下一个目标,但我无法解释,我不知道你说的是什么意思,我对SQL语句很有经验,对access的了解更少。您已经用两个数据库标记了这个问题:MySQL和MS Access。您不太可能同时使用这两种方法。删除其中一个标签。我正在使用MySQL语句,主要是了解到了这一点,但对于这个大小,我使用的是AccessThis(我不认为)正是我的意思。我的意思是,我想列出每个用户以及他们欠下的罚款总额,这(从外观上看)只是得到了可能欠下的书籍和贷款,或者是欠下的总额(虽然这些数字是相同的,不是吗?)让我直截了当地说,你想得到一个特定用户的总罚款,并显示他们的姓名、CallNo、书名(本书的)、主题(本书的)和总罚款?是的,所以它会显示每个用户一次,然后其中大约3-4个用户会有一个总罚款(尽管,一个有多个罚款)我只会展示给大家看once@Cacoon你运行那个查询了吗?这正是这个查询的作用
SELECT LOAN.UserID, 
       Sum(LOAN.Fine) AS SumOfFine
FROM LOAN
GROUP BY LOAN.UserID;
SELECT LOAN.UserID, 
       Sum(LOAN.Fine) AS SumOfFine,
       PATRON.[Name],
       PATRON.Age
FROM LOAN
     INNER JOIN PATRON
     ON LOAN.UserID = PATRON.UserID
GROUP BY LOAN.UserID, PATRON.[Name], Patron.Age;