在 SQL Server 2000 中使用视图
表格1:
id z1 z2 z3 z4 type
--------------------------------------
01A 300 400 300 400 01
2B 300 400 300 500 02
3C 700 600 400 300 01
04A 500 400 800 900 01
05B 400 300 400 300 02
06 150 200 200 150 03
....
表2:
type value1 value2
------------------------------------
01 0 300
01 301 500
02 0 200
02 201 400
03
.....
我想根据 table2 范围选择 table1 行:
表 1 的组合-max(Z1, Z2) and max(Z3, Z4)
如果 Max(z1,z2) range 小于或等于 table2 max(value2) where table1.type = table2.type If Max(z1, z2) range 小于或等于 table2 max(value2) where table1.type = table2.type
如果 z1、z2 范围小于或等于 table2,那么我想显示 z1、z2 行,否则为 null 如果 z3、z4 范围小于或等于 table2,那么我想显示 z3、z4 行,否则为 null
预期产出
表格1:
id z1 z2 z3 z4 type
--------------------------------------
01A 300 400 300 400 01 ' `Both (z1, z2), (z3, z4) rows are matching with table2 for type 01`
2B 300 400 null null 02 ' (z1, z2) are matching, (z3, z4) rows are not matching with table2 for type 02
3C null null 400 300 01 ' (z1, z2) rows are not matching, (z3, z4) rows are matching with table2 for type 01
04A 500 400 null null 01 ' (z1, z2) rows are matching, (z3, z4) rows are not matching with table2 for type 01
05B 400 300 400 300 02 ' Both (z1, z2), (z3, z4) rows are matching with table2 for type 02
....
目前我正在使用一个视图,我不想更改为存储过程,因为大多数报告都在使用这个视图。
如何在 sql.. 中做到这一点?