我有一个包含3列的表XYZ
:
Environment Servers Databases
Dev 5 10
PROD 25 100
Test 9 10
TOTAL 39 120
我想根据SERVER MAINTENANCE
和DATABASE MAINTENANCE
的值(可能是表格的计算列,)向名为TOTAL SERVERS
和TOTAL DATABASES
的表中添加另外两列这样,无论何时将数据添加到表中,列都应具有自动计算的值)
像,
答案 0 :(得分:1)
通常情况下,计算的列被视为非标准化。
在这里,您正在阐明可以轻松地作为附加数据输入到另一个表中的规则,例如:
maintenance_limits
-------------------
type
min_count
max_count
result_value
然后填写您的信息:
DATABASE, 30, 100, 10
等
然后你只需编写一个简单的JOIN查询来获得'计算'结果
答案 1 :(得分:0)
不存储可以计算的内容。只需使用将为您执行此操作的查询:
SELECT Environment, Servers, Databases,
CASE
WHEN Servers BETWEEN 1 AND 30 THEN 1
WHEN Servers BETWEEN 31 AND 100 THEN 5
ELSE 0
END AS 'Server Maintenance',
CASE
WHEN Databases BETWEEN 1 AND 10 THEN 1
WHEN Databases BETWEEN 30 AND 100 THEN 10
ELSE 0
END AS 'Server Maintenance',
FROM XYZ
您可能希望将ELSE
更改为NULL
,具体取决于您要对数据执行的操作。