gpt4 book ai didi

sql - 需要 SQL 连接方面的帮助 : Conditional Matching?

转载 作者:行者123 更新时间:2023-12-02 08:59:46 24 4
gpt4 key购买 nike

我要加入 2 张 table 。

              ACCOUNTS
account_number region product
1234 100 AB
2345 0 AB
3456 300 CD
4567 0 CD

PRODUCTS
product region price
AB 100 $1.50
AB 0 $1.25
CD 0 $2.00

每条帐户记录都有一个区域和一个产品代码产品因产品代码和地区而异。

但是,业务逻辑表示,如果 PRODUCTS 表中没有匹配的区域,则使用 0 区域来获取价格。

因此,我必须按产品和区域加入才能获得特定区域的定价。在示例中,帐户 1234、2345 和 4567 找到匹配的记录。

但是我需要找到一种方法让 3456 加入产品 CD 的 0 区域。

我想我可以(账户左连接产品)然后更新任何空价格,强制区域为 0,但这有多难看?

有什么想法吗?

此外,我正在使用供应商应用程序,因此无法更改架构或数据。

数据库:MS SQLSERVER 2005

最佳答案

您应该能够像这样进行双重连接:

SELECT a.account_number, a.region, a.product, ISNULL(p1.price, p2.price) AS Price
FROM Accounts a
LEFT JOIN Products p1 ON a.product = p1.product AND a.region = p1.region
LEFT JOIN Products p2 ON a.product = p2.product AND p2.region = 0

关于sql - 需要 SQL 连接方面的帮助 : Conditional Matching?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245672/

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