
[英]How to return difference in string values from the same column by doing a grouped string comparison in bigquery sql?
[英]SQL: lookup values from a table with multiple conditions to return final calculation
我正在尝试构建一个查询,该查询根据影响一段时间内从多家商店购买的商品成本的许多条件来计算最终收入。 每个商店/项目/位置都有不同的成本。
目前,我已经安排了分区表,显示每家商店的销售额,这些表格更新了我每天购买的苹果/梨的数量。 这将输入一个类似于下面的表 B 的表。 目前,成本在查询中手动更新为每个商店的每件商品的成本。 然而,它没有考虑城市或运费的差异,因此总成本将不准确。
由于成本变化如此之多,更新具有不同成本明细的中央表格似乎更容易。 例如,表 A 包含不同商店、城市的商品清单和每件商品的成本,以及送货是否让我们花钱。
与其在每个商店手动更新一个包含大量条件语句的长查询,不如在表 A 更新时使用一个与表 A 中的成本相匹配的查询?
谢谢
表一:
物品 | 店铺 | 城市 | 成本较高的项目 | 送货 | 每件运费 |
---|---|---|---|---|---|
苹果 | 小吃市场 | 汤维尔 | 1美元 | 是 | 0.5 美元 |
梨 | 小吃市场 | 汤维尔 | 3美元 | 是 | 0.5 美元 |
苹果 | 小吃市场 | 城郡 | 1.50 美元 | n | $0.0 |
梨 | 小吃市场 | 城郡 | 3.50 美元 | n | $0.0 |
苹果 | 美元食品 | 汤维尔 | $2 | 是 | 0.75 美元 |
梨 | 美元食品 | 汤维尔 | 4美元 | 是 | 0.75 美元 |
苹果 | 美元食品 | 城郡 | 3美元 | n | $0.0 |
梨 | 美元食品 | 城郡 | 4美元 | n | $0.0 |
表 B 应具有类似于以下对成本进行分组的输出。
表 B:
物品 | 数量 | 总收入 |
---|---|---|
苹果 | 350 | $xxxx |
梨 | 601 | $xxxx |
您没有显示您的数量表,这会有帮助,但据我了解,它看起来像这样:
日期 | 物品 | 店铺 | 城市 | 数量 |
---|---|---|---|---|
2022/09/29 | 梨 | 小吃市场 | 汤维尔 | 69420 |
2022/09/29 | 苹果 | 小吃市场 | 汤维尔 | 42069 |
2022/09/29 | 梨 | 小吃市场 | 城郡 | 10000 |
2022/09/29 | 苹果 | 小吃市场 | 城郡 | 45454 |
... ETC
如果您的表类似于上面的内容(不考虑列顺序),您可以执行 LEFT JOIN 以添加每个项目的成本计算
SELECT
A.Date,
A.Item,
A.Store,
A.City,
A.Quantity,
B.Costperitem,
B.Delivery,
B.Deliveryfee
FROM
`Quantity Table` AS A
LEFT JOIN
`Table 1` AS B
ON
A.Item = B.Item
AND
A.Store = B.Store
AND
A.City = B.City
这将合并您的数据,您最终将得到 output,例如:
日期 | 物品 | 店铺 | 城市 | 数量 | 成本项目 | 送货 | 派送费 |
---|---|---|---|---|---|---|---|
2022/09/29 | 梨 | 小吃市场 | 汤维尔 | 69420 | 3个 | 是 | 0.5 |
2022/09/29 | 苹果 | 小吃市场 | 汤维尔 | 42069 | 1个 | 是 | 0.5 |
2022/09/29 | 梨 | 小吃市场 | 城郡 | 10000 | 3.5 | n | 0 |
2022/09/29 | 苹果 | 小吃市场 | 城郡 | 45454 | 1.5 | n | 0 |
... ETC
由此,您应该能够计算出您的分组以获得产生的总收入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.