如何根据计算值创建一个sql视图?

时间:2013-08-29 21:13:26

标签: mysql sql sql-server

让我们假设我们有下表

TABLE NAME : DRINGE
__________________________________________________

ID  PRODUCT MACHINE MASS    STATE
01  1.76ann HRB 50  inlet
02  1.76ann HRB 38  inlet
03  2.55ann GUDO    45  outlet
04  95mm x 4    GUDO    36  dispatched
___________________________________________________

以下公式:

(inlet –outlet ) +outlet – dispatched = [resulted displayed to new view]

要替换的值是:


INLET = 50 , 38
OUTLET=45
DISPATCHED = 36

所以用上面的公式代替

[(inlet –outlet ) +outlet – dispatched = [resulted displayed to new view]

我们得到了这个

(50+38 – 45 ) + 45 – 36 = 52 

我想要的是结果,即52在sql视图中显示,如下面的视图

Dringe VIEW
_____________
Total_summary|
_____________|
 52          |
_____________|

。 有没有人知道我可以使用sql查询来做到这一点? 我需要你的帮助再次被卡住,而不是提前。

3 个答案:

答案 0 :(得分:0)

您可以将这些计算添加到您的查询中,例如

(40 + 50 + fieldName * anotherFieldName)AS计算

你甚至可以使用像

这样的子表

(40 + 50 +(SELECT fieldName FROM anotherTable WHERE someValue)AS计算

答案 1 :(得分:0)

create view dringe_view as
select (sum(inlet) – sum(outlet) ) +sum(outlet) – sum(dispatched ) as total_summary
from tab

但是你的计算可以进一步简化(删除出口 - 出口)到(入口 - 派遣)

答案 2 :(得分:0)

以下内容将遵循您的公式

CREATE VIEW DRINGEView AS 
SELECT sum(case when state = 'inlet' then mass else 0 end) - 
       sum(case when state = 'outlet' then mass else 0 end)+
       sum(case when state = 'outlet' then mass else 0 end) -
       sum(case when state = 'dispatched' then mass else 0 end) AS Total_summary
FROM dringe

但是添加插座然后减去插座将是多余的。公式中的括号也是多余的,因为所有运算符都是加法/减法,你的运算符之一是乘法/除法吗?