我是一名有用的助手,可以为您翻译文本。以下是需要翻译的内容:
我希望能够得到这样的视图(为了简单起见,按order_id筛选):
我已经在网上和SO上查找过了,发现这个问题可以准确地告诉我需要做什么,但我认为需要一些修改...
我尝试在数据库上运行这个查询:
将在价格列中返回每行中找到的整个列的最大值:因此,对于[product_color = 001]和[product_color = 995],我都有价格等于20欧元(当001更便宜时,仅为10欧元!)
我也尝试过不使用MAX,但这会给我每个价格一个行,留下很多空单元格(然后我明白了MAX的用途:D)。
您知道如何做我想做的事情吗? 我如何在单个prod_color内使用MAX而不是通过每个prod_color?
希望您能理解我的写作,提前感谢您的任何帮助。
(如果您需要更清晰地解释某些内容,请随时提问,我会尽快回复。
再次感谢,最好的问候。)
我有一个包含产品订单表的数据库,就像这样:
order_id | prod_code | prod_color | size | quantity |
-----------------------------------------------------
1 SHIRT 001 S 10
1 SHIRT 001 M 7
1 SHIRT 001 L 8
1 SHIRT 001 XL 1
1 SHIRT 995 S 2
1 SHIRT 995 M 1
1 SHIRT 995 L 0
1 SHIRT 995 XL 1
2 PANTS ....
还有一个产品价格表格如下:
prod_code | prod_color | price | currency
-----------------------------------------
SHIRT 001 10 EUR
SHIRT 001 9 USD
SHIRT 001 50 YEN
SHIRT 001 15 RUB
SHIRT 995 20 EUR
SHIRT 995 29 USD
SHIRT 995 100 YEN
SHIRT 995 45 RUB
PANTS ....
我希望能够得到这样的视图(为了简单起见,按order_id筛选):
order_id | prod_code | prod_color | size | quantity | EUR | USD | YEN | RUB
---------------------------------------------------------------------------
1 SHIRT 001 S 10 10 9 50 15
1 SHIRT 001 M 7 10 9 50 15
1 SHIRT 001 L 8 10 9 50 15
1 SHIRT 001 XL 1 10 9 50 15
1 SHIRT 995 S 2 20 29 100 45
1 SHIRT 995 M 1 20 29 100 45
1 SHIRT 995 L 0 20 29 100 45
1 SHIRT 995 XL 1 20 29 100 45
我已经在网上和SO上查找过了,发现这个问题可以准确地告诉我需要做什么,但我认为需要一些修改...
我尝试在数据库上运行这个查询:
SELECT o.order_id, o.prod_code, o.prod_color, o.size, o.quantity,
MAX(CASE WHEN p.currency = 'EUR' THEN p.price END) AS 'EUR',
MAX(CASE WHEN p.currency = 'USD' THEN p.price END) AS 'USD',
MAX(CASE WHEN p.currency = 'YEN' THEN p.price END) AS 'YEN',
MAX(CASE WHEN p.currency = 'RUB' THEN p.price END) AS 'RUB'
FROM products_order o JOIN products_prices p ON o.prod_code = p.prod_code
WHERE o.order_id = 1
GROUP BY o.order_id, o.prod_code, o.prod_color, o.size, o.quantity
将在价格列中返回每行中找到的整个列的最大值:因此,对于[product_color = 001]和[product_color = 995],我都有价格等于20欧元(当001更便宜时,仅为10欧元!)
我也尝试过不使用MAX,但这会给我每个价格一个行,留下很多空单元格(然后我明白了MAX的用途:D)。
您知道如何做我想做的事情吗? 我如何在单个prod_color内使用MAX而不是通过每个prod_color?
希望您能理解我的写作,提前感谢您的任何帮助。
(如果您需要更清晰地解释某些内容,请随时提问,我会尽快回复。
再次感谢,最好的问候。)