【发布时间】:2015-05-15 14:04:34
【问题描述】:
我的 SQL 大师本周在哥斯达黎加,遇到了一个我不知道如何解决的问题。我有四个简单的表和一个函数。为简单起见,我将删除任何不需要了解我需要什么的字段。
表1:
PRIMARY_ITEM_ID,
INVENTORY_ITEM_ID
表2:
Table2ID,
INVENTORY_ITEM_ID,
Table3ID
表3:
Table3ID,
Department,
DepartmentJobType
表4:
PRIMARY_ITEM_ID
DISCRETE_JOB
该函数返回具有 Table4 的 DISCRETE_JOB 列的作业的 JobType。
我需要什么:查看来自Table1 的所有INVENTORY_ITEM_ID。仅当 table3 中的 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,我将不需要这个,但我想尽可能避免更改表格。任何帮助都会很棒!感谢其他大师!
【问题讨论】:
-
我只是认为将 JobType 附加到 Table1 的 CTE 查询可能也可以工作。
标签: sql function view user-defined-functions sql-server-2012-express