从一个表中获取总数,从另一个表中引用ID

时间:2015-05-31 23:17:32

标签: mysql sql ms-access

我需要在我的一张桌子(贷款)上获得一个总计,其中有多个用户ID'具有相同的ID,因此用户可以获得多本书但alsmo意味着他们可以对不同的书籍进行多次罚款(如下图所示) enter image description here

我想列出每个用户,然后列出他们欠的总罚款,但我无法弄清楚如何。

继承我的PATRON(用户)数据库以及参考 enter image description here

我已经使用了所有用户和书籍,而且我不确定如何能够为下一个目标做类似的事情

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;

2 个答案:

答案 0 :(得分:1)

SELECT PATRON.Name,
       BOOK.CallNo,
       BOOK.Title,
       BOOK.Subject,
       SUM(LOAN.Fine) AS TotalFine
FROM BOOK,
     LOAN,
     PATRON
WHERE BOOK.CallNo = LOAN.CallNo
  AND LOAN.UserID = PATRON.USerID
GROUP BY PATRON.USerID;

答案 1 :(得分:0)

嗯,人们只能猜测其他两个表中的数据类型,因为你没有给我们一个屏幕截图,所以我会给出最基本的答案并从那里开始工作。

  

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

SELECT LOAN.UserID, 
       Sum(LOAN.Fine) AS SumOfFine
FROM LOAN
GROUP BY LOAN.UserID;

从那里,如果您需要来自PATRON表的信息(假设它存储UserID),您可以执行INNER JOIN,它看起来像:

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表。