【问题标题】:Running SQL Server 2012 Express Scalar Function in View在视图中运行 SQL Server 2012 Express 标量函数
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多