比较值大小的问题
相比较两个标中的值, 如果A 表中的值小于T表,则O表中对应的值为0;反之,O表中对应的值为15,
例如:A表中AAA 第一周的值为1000, T表中AAA第一周的值为900, 则O表中AAA第一周的值为15
请问如何写view 来实现O表?
A
组 第一周 第二周 第三周
AAA 1000 800 900
BBB 1200 1000 650
ccc 800 1000 1100
T
组 第一周 第二周 第三周
AAA 900 900 900
BBB 1000 1000 1000
ccc 900 1000 1100
O
组 第一周 第二周 第三周
AAA 15 0 15
BBB 15 15 0
ccc 0 15 15
------解决方案--------------------有點錯誤,修改下
--建立測試環境
Create Table A
(组 Varchar(10),
第一周 Int,
第二周 Int,
第三周 Int)
Insert A Select 'AAA ', 1000, 800, 900
Union All Select 'BBB ', 1200, 1000, 650
Union All Select 'ccc ', 800, 1000, 1100
Create Table T
(组 Varchar(10),
第一周 Int,
第二周 Int,
第三周 Int)
Insert T Select 'AAA ', 900, 900, 900
Union All Select 'BBB ', 1000, 1000, 1000
Union All Select 'ccc ', 900, 1000, 1100
GO
--建立視圖
Create View V_TEST
As
Select
A.组,
(Case When A.第一周 < T.第一周 Then 0 Else 15 End) As 第一周,
(Case When A.第二周 < T.第二周 Then 0 Else 15 End) As 第二周,
(Case When A.第三周 < T.第三周 Then 0 Else 15 End) As 第三周
From
A
Inner Join T
On A.组 = T.组
GO
--測試
Select * From V_TEST
GO
--刪除測試環境
Drop Table A, T
Drop View V_TEST
GO
--結果
/*
组 第一周 第二周 第三周
AAA 15 0 15
BBB 15 15 0
ccc 0 15 15
*/