使用聚合字段加入 Cloud SQL 数据模型

Join Cloud SQL data models with aggregated field

我需要为我的应用程序创建一个视图,以在单个 table 中显示来自两个 Cloud SQL 模型的数据,并聚合一个字段。

我的数据模型看起来像这样(简化)。

项目Table

projectID, projectName  , projectBudget
0001     , Project Alpha, 25000
0002     , Project Beta , 2000

费用Table

projectID, costAccrued
0001     , 1000
0001     , 5000
0002     , 1000
0001     , 8000
0002     , 500
0002     , 300

合并Table

我正在尝试创建一个视图,以显示汇总了 costAccrued 的数据。

projectID, projectName  , projectBudget, costAccrued
0001     , Project Alpha, 25000        , 16000
0002     , Project Beta , 2000         , 1800

我无法找到任何代码示例,其中 Cloud SQL tables 与聚合字段连接,但我了解到创建计算 SQL table 是正确的做法。

但是,我对如何编写 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