gpt4 book ai didi

mysql - 在类似电子表格的列中显示 MySQL 定价图表

转载 作者:行者123 更新时间:2023-11-29 11:23:32 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 中输出一个友好的价格表,以便导出/导入到电子表格中。让我们以水果及其价格区间为例。

这是我所指的模式的 fiddle : http://sqlfiddle.com/#!9/c526e3/4

简单地说:

table :水果
id
姓名

表:fruit_pricing
id
Fruit_id
最小数量
最大数量
价格

执行查询时:

SELECT 
F.name,
IF(FP.min_quantity = 1, FP.price, '0') as qty_1,
IF(FP.min_quantity = 10, FP.price, '0') as qty_10,
IF(FP.min_quantity = 25, FP.price, '0') as qty_25,
IF(FP.min_quantity = 50, FP.price, '0') as qty_50,
IF(FP.min_quantity = 100, FP.price, '0') as qty_100
FROM Fruit F
LEFT JOIN FruitPricing FP ON FP.fruit_id = F.id

它显示的结果如下: MySQL result set for price breaks我想做的是将水果名称分组,这样只有三行:苹果、葡萄和橙子。然后,我希望将所有 0 值替换为适当的数量。我试图获得与此屏幕截图中的电子表格相同的输出:

Spreadsheet screenshot for price breaks

有什么好的技巧可以实现这一点吗?我不确定这个特定问题的 sql-tech-speak,因此很难搜索答案。如果可以的话,我很乐意更新我的问题主题,并且有人对此有更好的建议。

最佳答案

SELECT f.name
, SUM(CASE WHEN fp.min_quantity = 1 THEN fp.price ELSE 0 END) qty_1
, SUM(CASE WHEN fp.min_quantity = 10 THEN fp.price ELSE 0 END) qty_10
, SUM(CASE WHEN fp.min_quantity = 25 THEN fp.price ELSE 0 END) qty_25
, SUM(CASE WHEN fp.min_quantity = 50 THEN fp.price ELSE 0 END) qty_50
, SUM(CASE WHEN fp.min_quantity = 100 THEN fp.price ELSE 0 END) qty_100
FROM fruit f
LEFT
JOIN fruitpricing fp
ON fp.fruit_id = f.id
GROUP
BY name;

不过,如果是我,我可能只会执行以下操作,并处理表示层中任何剩余的显示问题...

SELECT f.name
, fp.min_quantity
, SUM(fp.price) qty
FROM fruit f
LEFT
JOIN fruitpricing fp
ON fp.fruit_id = f.id
GROUP
BY name
, min_quantity;

关于mysql - 在类似电子表格的列中显示 MySQL 定价图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38577351/

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