0

我是 SQL 新手。我正在尝试使用 SQL 函数执行一些算术运算。

我有三张桌子:

表格1

Table1_ID
Table2_ID
Value 

表2

Table2_ID
Switch

表3

Table3_ID
Table1_ID
Table2_ID
X_Column

我将表 3 中 X_Column 的内容作为输入开始,这将是我的函数的输入。这些是条件:

1) 多个 Table2_ID 可以有相同的 X_Column 输入,反之则不行

2)多个Table1_ID可以有相同的Table2_ID,反之则不行

3) 每个 X_Column 输入都有一个或多个 Table2_ID;每个 Table2_ID 都有一个或多个 Table1_ID

我要做的就是乘以并返回 Table1 中字段Value的内容,每当输入特定的输入 X_Column 时,Table1 有一个 Table1_ID、一个对应的 Table2_ID、一个对应于输入 X_Column 的对应 Table3_ID。

我无法理解如何做到这一点。我认为可以使用联接或视图。我还没有任何相关代码可以在这里发布。有人可以帮忙吗?

4

1 回答 1

0

我猜是列数据类型...

通过Table2_ID列连接表。连接不同表的行时,可以将列相乘:Table1.Value * Table3.X_Column

-- sample tables
declare @Table1 table (Table1_ID int, Table2_ID int, Value numeric(18,2));
declare @Table2 table (Table2_ID int, Switch bit);
declare @Table3 table (Table3_ID int, Table1_ID int, Table2_ID int, X_Column numeric(18,2));

-- sample data
insert @Table1 values(100, 200, 5.00);
insert @Table1 values(100, 201, 10.00);
insert @Table2 values(200, 0);
insert @Table2 values(201, 1);
insert @Table3 values(300, 100, 200, 2.0);
insert @Table3 values(300, 100, 201, 2.5);

declare @X_Column numeric(18,2);
set @X_Column = 2.0;

select
    t1.Value * t3.X_Column
from @Table1 t1
join @Table2 t2 on t2.Table2_ID = t1.Table2_ID
join @Table3 t3 on t3.Table2_ID = t2.Table2_ID
where t3.X_Column = @X_Column
于 2012-06-11T16:21:46.760 回答