在视图中运行SQL Server 2012 Express标量函数
我的SQL专家在哥斯达黎加待了一周,有一个问题我不知道如何解决。我有四个简单的表和一个函数。为了简单起见,我将删除任何不需要理解我需要的字段 表1:在视图中运行SQL Server 2012 Express标量函数,sql,function,view,user-defined-functions,sql-server-2012-express,Sql,Function,View,User Defined Functions,Sql Server 2012 Express,我的SQL专家在哥斯达黎加待了一周,有一个问题我不知道如何解决。我有四个简单的表和一个函数。为了简单起见,我将删除任何不需要理解我需要的字段 表1: PRIMARY_ITEM_ID, INVENTORY_ITEM_ID 表2: Table2ID, INVENTORY_ITEM_ID, Table3ID 表3: Table3ID, Department, DepartmentJobType 表4: PRIMARY_ITEM_ID DISCRETE_JOB 该函数使用表4的DISCRETE_
PRIMARY_ITEM_ID,
INVENTORY_ITEM_ID
表2:
Table2ID,
INVENTORY_ITEM_ID,
Table3ID
表3:
Table3ID,
Department,
DepartmentJobType
表4:
PRIMARY_ITEM_ID
DISCRETE_JOB
该函数使用表4的DISCRETE_Job
列返回作业的JobType
我需要的:查看表1
中的所有库存项目ID
。仅当表3中的JobType与我的函数的结果相等时才显示部门
这些链接类似于
Table1.INVENTORY_ITEM_ID -> Table2.INVENTORY_ITEM_ID
AND Table1.PRIMARY_ITEM_ID = Table4.PRIMARY_ITEM_ID
Table2.Table3ID -> Table3.Table3ID ONLY WHEN
Table3.DepartmentJobType = (SELECT FROM GetJobType_F(Table4.DISCRETE_JOB)
我希望我能用我现有的东西做到这一点,而不需要重新设计我的桌子。(我确实意识到,如果我在表1中有JobType,我就不需要这个,但我希望尽可能避免更改表。任何帮助都会很棒!感谢其他专家!我使用CTE查询解决了这个问题。我只是认为将JobType附加到表1中的CTE查询可能也会起作用。