gpt4 book ai didi

带有 case 语句和表连接的 SQL 计算列

转载 作者:行者123 更新时间:2023-12-01 03:56:05 30 4
gpt4 key购买 nike

好的,我已经进行了一些网络挖掘,但似乎无法找到如何使这种情况起作用,或者即使有可能。

我正在使用 SQL Server 2008 并有一个计算列,我试图在其中计算一些有关外币汇率的值。

尽管从长远来看,一张表可能更容易,但我想使用涉及两个不同表的正确解决方案。

t1包含交易日志。表t2包含给定货币的基本信息。可以使用 currencyCode 连接这两个表属性。

粘性部分带有货币相关计算。目前,计算仅对 CR1 有所不同。 CR2 CR3CR4但 future 随着更多货币的加入,新货币可能会有所不同。所以理想情况下,一个新行将被添加到 t2和一个位标志( flagCurrencyCalc )设置,指定使用或不使用替代计算。

所以现在的公式看起来像这样:

(case when [currencyCode]='CR1' OR [currencyCode]='CR2' OR [currencyCode]='CR3' OR [currencyCode]='CR4' then (formula1) else (formula2) end)

如您所见,我必须手动进入并通过添加另一个带有新货币代码的 OR 语句来更改公式。

是否有可能按照以下方式做一些事情:
(case when t2.flagCurrencyCalc=True对于在 t1 中找到的记录中的给定货币代码 then (formula1) else (formula2) end)
???

最佳答案

您不能直接访问计算列中的另一个表(请参阅 here )。

这里有一些选项。

您可以使用 in 简化您的公式:

(case when currencyCode in ('CR1', 'CR2', 'CR3', 'CR4')
then (formula1)
else (formula2)
end)

您可以使用 View :
create view vw_tablename as
select t.*,
(case when currencyCode in (select currencyCode from ListOfCurrencies where . . . )
then (formula1)
else (formula2)
end)
from t;

您可以定义一个函数来检查货币。

关于带有 case 语句和表连接的 SQL 计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240787/

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