运行 SQL 视图中的 Server 2012 Express 标量函数

Running SQL Server 2012 Express Scalar Function in View

我的 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_JOB 列的作业 JobType 的函数 returns。

我需要的是:查看 Table1 中的所有 INVENTORY_ITEM_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)

我希望我可以用我现有的东西来做这件事,而不需要重新设计我的桌子。 (我确实意识到,如果我在 Table1 中有 JobType,我就不需要这个,但我想尽可能避免更改表格。任何帮助都会很棒!感谢其他专家!

我使用 CTE 查询解决了这个问题。