google-app-maker - 使用聚合字段加入 Cloud SQL 数据模型
问题描述
我需要为我的应用程序创建一个视图,该视图在单个表中显示来自两个 Cloud SQL 模型的数据,并聚合一个字段。
我的数据模型看起来像这样(简化)。
项目表
projectID, projectName , projectBudget
0001 , Project Alpha, 25000
0002 , Project Beta , 2000
成本表
projectID, costAccrued
0001 , 1000
0001 , 5000
0002 , 1000
0001 , 8000
0002 , 500
0002 , 300
组合表
我正在尝试创建一个视图,显示将 costAccrued 相加的数据组合。
projectID, projectName , projectBudget, costAccrued
0001 , Project Alpha, 25000 , 16000
0002 , Project Beta , 2000 , 1800
我找不到任何将 Cloud SQL 表与聚合字段连接的代码示例,但我知道创建计算 SQL 表是执行此操作的正确方法。
但是,我坚持如何编写 SQL 查询。这是我尝试使用的,但它不起作用,我认为这与我不理解的参数有关。
SELECT projects.`projectID`, projects.`projectName`, projects.`projectBudget`, SUM(costs.`costAccrued`)
FROM projects
LEFT JOIN costs on projects.`projectId` = costs.`projectID`
GROUP BY projects.`projectID`;
解决方案
我自己解决了这个问题。该问题与计算 SQL 模型中的字段名称不匹配的输出列名称有关。
正确的查询如下所示(注意每个输出列都标记为与我的计算 SQL 模型中的名称匹配):
SELECT projects.`projectID` as "projectId", projects.`projectName` as "name", projects.`projectBudget` as "budget", SUM(costs.`costAccrued`) as "costAccrued"
FROM projects
LEFT JOIN costs on projects.`projectId` = costs.`projectID`
GROUP BY projects.`projectID`;
参考:https ://developers.google.com/appmaker/models/cloudsql#calculated_sql_models
推荐阅读
- exchange-server - 通过 Exchange WebService API 重新发送电子邮件
- c++ - 构造提及另一种类型的对象时出错
- python - 如何选择数据框的特定列,并根据条件对它们求和?
- firemonkey - Firemonkey 中的多行提示
- ios - 如何将帖子从我的应用程序分享到 Twitter iOS
- c++ - 我如何在 .qml 文件中与其他 2 个中继器级联使用 Model c++ 类
- c++ - 使用 C++ 和标准 C 库以异步方式实现处理套接字连接的读取超时的最佳方法
- javascript - 在数据库中插入两个 ID
- apache-kafka - apache kafka 保留 kstream 和链接主题
- php - 谷歌登录后如何使用codeigniter重定向?