我正在构建 Xojo 应用程序,但我想要执行的查询遇到问题。
我需要导出保存在数据库中的说明书
它有 3 个表,一个包含页面,一个包含所需的项目和一个项目数据库
现在我需要从 2 个表中获取结果
PartsPerPage 和 Parts
每页零件数
ID - SetID - Page - PartID - Parts
1 - 1 - 1 - 37878 - 5
2 - 1 - 1 - 23444 - 6
3 - 1 - 1 - 34534 - 11
4 - 1 - 2 - 37878 - 4
零件
ID - Name - Size - Image - Stock - ColorID - SortCode
37878 - Blabla - 6 - picture - 56 - 12 - box1
23444 - Blabla - 9 - picture - 12 - 11 - box1
34534 - Blabla - 3 - picture - 66 - 101 - box2
37878 - Blabla - 2 - picture - 33 - 4 - box5
现在我想获取所有使用的项目的列表
ID - Parts - Name - Size - Image - ColorID
37878 - 9 - Blabla - 6 - Picture - 12
23444 - 6 - Blabla - 9 - Picture - 11
34534 - 11 - Blabla - 3 - Picture - 101
我尝试了一些 Sql 查询,但没有成功
这个只给了我一条记录,但应该有 155 条记录
SELECT DISTINCT
PartsPerPage.PartID,
SUM(PartsPerPage.Parts),
Parts.Name,
Parts.Discription,
Parts.Size, Parts.image,
Parts.ColorID
FROM PartsPerPage JOIN Parts ON Parts.ID = PartsPerPage.PartID
WHERE PartsPerPage.SetID = 1
当我只是做一个简单的查询时,如果我做记录计数,我会得到155条记录,但没有得到结果
SELECT DISTINCT
PartsPerPage.PartID
FROM PartsPerPage
WHERE PartsPerPage.SetID = 1
任何帮助都会很棒
最佳答案
大概,您打算:
SELECT ppp.PartID,
SUM(PartsPerPage.Parts),
p.Name, p.Discription, p.Size, p.image, p.ColorID
FROM PartsPerPage ppp JOIN
Parts p
ON p.ID = ppp.PartID
WHERE ppp.SetID = 1
GROUP BY ppp.PartID, p.Name, p.Discription, p.Size, p.image, p.ColorID;
需要GROUP BY
,因为您有一个SUM()
。 SUM()
将您的查询转换为聚合查询 - 如果没有 GROUP BY
,则仅返回一行。
关于sql - 需要来自多个表的 SUM 不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906358/