【问题标题】:SQL Table that calculates values from another SQL table从另一个 SQL 表计算值的 SQL 表
【发布时间】:2013-12-04 11:58:24
【问题描述】:

我想创建一个动态表,它从静态表中提取前 5 列并将其乘以一个值字段。

1.静态表(Cases):

Column A; Column B; Column C; Column D; Column E; Value; Jan (cases);...;Dec(cases)

2.动态表(value * cases by month)

Column A; Column B; Column C; Column D; Column E; Jan (value * cases);...;Dec(value * cases)

在 excel 中,我只会在它旁边的一个单元格中计时。但我希望 sql 在每次上传新的静态文件时创建/更新数据库。

好的更新
审查后我需要一些不同的东西,我需要拿 2 张桌子并相互累积 一张桌子是cases,另一张桌子是product value
cases table:
帐户;渠道; [产品代码](这是我的 p 键)一月;二月;三月;四月;可能;君;七月;八月;九月;十月;十一月;十二月
price table:
年份; SKU (这是我的密码); [产品名称]; 一月;二月;三月;四月;可能;君;七月;八月;九月;十月;十一月;十二月;
数值位于各个月份。
换句话说,我需要
cases table.JAN * price table.Jan 其中cases table.primary key = price table.primary key

【问题讨论】:

  • 请发布示例输出
  • 谨慎措辞。您可能不想在每种情况下都_create a database`。所以你实际上有几个问题:a)你如何从另一个表中的值更新/创建一个表。 b) 更可取的是:更新或(重新)创建。 c) 这一步应该如何触发?
  • 就更新而言,我会每月获取需要进入数据库的文件,然后我想计算并将其链接到内部数据库。流程就是从经理那里接收平面文件中的数据并将它们上传到 SQL,这是我希望对数据进行所有转换的时候

标签: sql sql-server


【解决方案1】:

看看计算出来的columns

或者,如果您需要在计算中包含另一个表,您可以创建一个用户定义的函数:

CREATE FUNCTION dbo.GetValue(INT @code, INT @rec)
RETURNS INT
AS ...

然后你会改变你的表添加列:

ALTER TABLE dbo.Mytbl
   ADD MyCalcCol AS dbo.GetValue(CodeVal, RecVal)

另一个想法.. 为什么不只创建一个视图,甚至是索引视图。

CREATE VIEW vwTableYear AS 
   SELECT [Month number in cases]*[price of product] AS MonthlyValue 
   FROM myTableYear

【讨论】:

  • 创建一个视图将是一个不错的选择,尽管我如何告诉它从表中获取列,然后将其乘以某个值
  • 如果我理解正确,那么类似于 tihs,它结合了来自两个表的数据: CREATE VIEW vwMyView AS SELECT a.col1, b.col1*2 FROM MyTbl1 AS a INNER JOIN MyTbl2 AS b ON a.id = b.Id
  • 我通过 ALTER TABLE myTableYear ADD [MonthlyValue] AS [MonthlyValue] AS [Monthly Value in case]*[price of product] 设法进入了我的表格
  • 但是我不想把它放在同一个表中,我想用这些细节创建一个新视图
  • 好的,抱歉,如果我不完全理解,但您是否正在寻找这个:
    CREATE VIEW vwTableYear AS SELECT [Month number in cases]*[price of product] AS MonthlyValue FROM myTableYear
    然后您可以通过视图访问该值。只需根据需要向视图添加更多列。
    希望对你有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
  • 2021-10-28
相关资源
最近更新 更多