gpt4 book ai didi

mysql - 使用连接条件创建 View

转载 作者:行者123 更新时间:2023-11-30 22:10:19 24 4
gpt4 key购买 nike

我想通过某种条件连接从 2 个表创建一个 View (请原谅我的无知,因为我是 SQL 编码的新手!)。两表如下:

表 1

Store | Product | MAC Price
S001 | 123 | 15.00
S001 | 456 | 17.50
S002 | 123 | 16.00
S002 | 456 | 17.50
S002 | 789 | 20.00

表 2:

Store | Product | SELL Price
S001 | 123 | 25.00
S001 | 456 | 27.50
S002 | 123 | 26.00
SNAT | 123 | 35.00
SNAT | 456 | 40.00

我在语法上遇到困难的地方是 TABLE2 在商店级别(例如 S001)或国家级别(例如 SNAT)有价格,或者根本没有价格。

所需的 View 输出:

Store | Product | MAC Price | Sell Price
S001 | 123 | 15.00 | 25.00
S001 | 456 | 17.50 | 25.00
S002 | 123 | 16.00 | 26.00
S002 | 456 | 17.50 | 40.00 (no Store specifc, therefore SNAT)
S002 | 789 | 20.00 | 0.00 (no Store specifc or SNAT)

我当前的代码如下所示...我只是不知道在哪里/如何添加“如果没有商店特定价格,则使用 SNAT,否则为 0.00”的规则...

create view SCH.Z_MAC_PRICE as
select SCH.table1.store, SCH.table1.product, SCH.table1.mac,
SCH.table2.sell
from SCH.table1 left outer join
SCH.table2
on SCH.table1.store = SCH.table2.store and
SCH.table1.product = SCH.table2.product

最佳答案

我会将 table1 与 table1 连接两次,一次用于商店级别,一次用于国家级别,并且仅当商店级别不存在时才显示国家级别:

CREATE VIEW z_mac_price AS
SELECT t1.store,
t1.product,
t1.mac_price,
COALESCE(t2store.sell_price, t2nat.sell_pirce, 0.00)
FROM table1 t1
LEFT JOIN table2 t2store ON t2store.product = t1.product AND
t2store.store = t1.store
LEFT JOIN table2 t2nat ON t2nat.product = t1.product AND
t2nat.store = 'SNAT'

关于mysql - 使用连接条件创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40282589/

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