gpt4 book ai didi

sql - 努力加入3张 table 的新手

转载 作者:行者123 更新时间:2023-12-05 05:38:07 26 4
gpt4 key购买 nike

我有 3 个采购表,格式如下:

  1. 日期 |公司编号 | apple_txn_amt

  2. 日期 |公司编号 | orange_txn_amt

  3. 日期 |公司编号 | pear_txn_amt

许多公司每天都有多次采购/销售。我正在尝试加入和分组,因此每个公司只有 1 个日期以及总水果余额:

date | company_id | total_apple_balance | total_apple_orange_balance | total_pear_balance

我之前为类似案例构建了一个查询,并使用了 2 个连接。但这仅适用于一家公司的数据,因此我只是在每个表的 date=date 加入。每个表的过程是:收集购买、销售、合并这两个、使用 generate_series() 合并到一个新表以在缺少的天数中插入 0、计算每日增量,然后按天分组以获得运行总计。然后是这样的:

SELECT 
apple.day
apple.total
orange.total
pear.total
(apple + orange + pear) AS total_fruit
FROM apple
JOIN orange ON orange.date = apple.date
JOIN pear ON pear.date = apple.date
ORDER BY day

这就像我需要在日期和公司 ID 上加入,但据我所知这是不可能的。

我应该以不同的方式处理这个问题吗?

最佳答案

当然你可以像这样添加company_id

SELECT 
apple.day
apple.total
orange.total
pear.total
(apple.total + orange.total + pear.total) AS total_fruit
FROM apple
JOIN orange ON orange.date = apple.date AND orange.company_id = apple.company_id
JOIN pear ON pear.date = apple.date AND pear.company_id = apple.company_id
ORDER BY day

但如果情况不需要,您的数据库设计不正确。

你不会有 3 个表,你只会有一个 Fruit type 作为另一列,以区分它们

关于sql - 努力加入3张 table 的新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73015623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com