sql - SQL Server 将多列乘以第二个表中的列中的值
问题描述
我有一个非常大的数据集,其中包含以下列:
[ID] [code_1] [code_2] [code_3] [code_4]
[days_code_1] [days_code_2] [days_code_3] [days_code_4]
该ID
列不是唯一的,[code_n]
列是文本,[days_code_n]
列是数字。
在第二个表中,我有两列,一列具有匹配的代码值[code_n]
,并且[cost value]
对应于每个代码。
我希望能够将[days_code_n]
乘以[cost value]
。我可以单独执行此操作,但由于我无法控制的原因,我有 50 个[code_n]
列[days_code_n]
。由于 ID 值不是唯一的,我必须将数据保持为当前格式。
谁能告诉我如何在不运行 50 个查询的情况下将 code_days 列中的值乘以第二个表中 [the cost_value] 变量中的值。
解决方案
由于您没有提及您的表的名称,因此我称它们为Table1
and Table2
。
code_n
您可以为您拥有的每一列加入第二个表:
SELECT Table1.ID
,Table1.days_code_1 * t2_01.cost_value AS result1
,Table1.days_code_2 * t2_02.cost_value AS result2
,Table1.days_code_3 * t2_03.cost_value AS result3
...
,Table1.days_code_50 * t2_50.cost_value AS result50
FROM Table1
JOIN Table2 t2_01 ON Table1.[code_1] = t2_01.[code_n]
JOIN Table2 t2_02 ON Table1.[code_2] = t2_02.[code_n]
JOIN Table2 t2_03 ON Table1.[code_3] = t2_03.[code_n]
...
JOIN Table2 t2_50 ON Table1.[code_50] = t2_50.[code_n]
并确保在Table1.code_...
引用的每一列上都有一个外键Table2.code_n
。否则查询可能会很慢。
推荐阅读
- virtual-machine - 使用数据包生成执行 l2 转发时出现大量数据包丢失
- excel - VBA 代码无法通过“按钮”正常运行,但是当您通过 F8 逐步尝试时,它可以完美运行
- php - 如果 otp 验证,如何在注册页面上重定向,否则重定向到登录 Laravel?
- reactjs - “React.createContext 不是函数”仅在我使用情感/样式和 @testing-library/react 时
- python - 如何在同一错误上打破 While True 语句 3 次
- javascript - 如何在html中访问两个单词的对象
- html - Z-index 被忽略
- javascript - axios() 方法不适用于 POST 请求
- javascript - Dealing with many attributes mapping to a parent component list in VueJS
- php - .htaccess 重写 url 删除 CSS、JS 和图像无论我做什么它都不起作用