sql - 需要来自多个表的 SUM 不同值

标签 sql xojo

我正在构建 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/

相关文章:

c# - 在 Asp.net 中检查数据读取器是否有行

windows - RealBasic 编写 Windows 应用程序?

java - 有人可以帮助将这个简洁的 Java 函数解构为简单的英语吗?

sqlite - 如何从文本框=带有聚合的公式的表中选择(Xojo + SQLite)

mysql - sql查询中where子句中n的用途是什么

c# - 如何在 SQL Server 中存储 Point 数据类型?

sql - FileMaker - ODBC/JBDC 连接 - SQL 的方言

sql - 错误的批量删除和更新——设计错误?

sqlite - 使用SQLite3 DB进行REALBasic报告

c++ - 使用 Xojo 进行跨平台开发有哪些妥协?