sql-server - 如何查询存储过程到父表和子表?
问题描述
我有一个作业表和一个存储过程来显示每个用户的作业。但是现在,我需要对同一列使用不同的查询。
现在我得到了这个:
SELECT
extrajobs.ExtraJobsID, prof.ProfileName,
functscope.Name AS functionscope1,
functscope.Name AS functionscope2,
extrajobs.FunctionScopeID,
users.UserID, extrajobs.CreateDate,
users.Username, extrajobs.LastUpdate,
prof.ProfileName,
extrajobs.Description, extrajobs.Day, extrajobs.Hours,
extrajobs.Remaining, extrajobs.Coordinator,
extrajobs.Feedback__On_Coordinator, extrajobs.Status_Coordinator,
extrajobs.Director, extrajobs.Status_Director,
extrajobs.Feedback__On_Director
--SELECT DISTINCT(users.Username), prof.ProfileName
FROM
TBL_User AS users
JOIN
TBL_ExtraJobs AS extrajobs ON extrajobs.UserID = users.UserID
JOIN
TBL_UserFunctionScope AS functscope ON extrajobs.FunctionScopeID= functscope.FunctionScopeID
JOIN
REL_ProfileUser AS relprofileuser ON users.UserID = relprofileuser.UserID
JOIN
TBL_Profile AS prof ON prof.ProfileID = relprofileuser.ProfileID
JOIN
TBL_UserFunction AS funct ON funct.FunctionID = relprofileuser.FunctionID
WHERE
funct.Name = 'Extra-jobs'
这是工作表:
现在,在存储过程的结果中,我想将 int functioscope1 作为 funtionscope2 的父级,如TBL_FunctionScope
.
我怎样才能做到这一点 ?
解决方案
您需要在 TBL_FunctionScope 和 TBL_UserFunctionScope 中包含 JOIN,如下所示:
SELECT
extrajobs.ExtraJobsID, prof.ProfileName,
functscope.Name AS functionscope1,
functscope.Name AS functionscope2,
parentfunctscope.Name as parentfunction,
extrajobs.FunctionScopeID,
users.UserID, extrajobs.CreateDate,
users.Username, extrajobs.LastUpdate,
prof.ProfileName,
extrajobs.Description, extrajobs.Day, extrajobs.Hours,
extrajobs.Remaining, extrajobs.Coordinator,
extrajobs.Feedback__On_Coordinator, extrajobs.Status_Coordinator,
extrajobs.Director, extrajobs.Status_Director,
extrajobs.Feedback__On_Director
--SELECT DISTINCT(users.Username), prof.ProfileName
FROM
TBL_User AS users
JOIN
TBL_ExtraJobs AS extrajobs ON extrajobs.UserID = users.UserID
JOIN
TBL_UserFunctionScope AS functscope ON extrajobs.FunctionScopeID= functscope.FunctionScopeID
JOIN
TBL_FunctionScope as func ON extrajobs.FunctionScopeID= func.FunctionScopeID
LEFT JOIN
TBL_UserFunctionScope AS parentfunctscope ON func.ParentScopeID = parentfunctscope.FunctionScopeID
JOIN
REL_ProfileUser AS relprofileuser ON users.UserID = relprofileuser.UserID
JOIN
TBL_Profile AS prof ON prof.ProfileID = relprofileuser.ProfileID
JOIN
TBL_UserFunction AS funct ON funct.FunctionID = relprofileuser.FunctionID
WHERE
funct.Name = 'Extra-jobs'
推荐阅读
- android - 安卓用户界面更新
- python - 从odoo qweb中的按钮触发动作
- django - 将 ManyToMany Field 对象添加到信号创建模型实例的信号
- count - 如何将过滤器传递给 Count?
- go - 如何编写一个接受任何数值类型的泛型函数?
- ionic-framework - “com.android.build.gradle.AppPlugin@1544e09d”的“未指定”的错误“插件版本”不是有效的版本号。离子 6
- postgresql - 解析 SQL 查询字符串 PostgreSQL 时出错?
- python - 对 DataFrame 的数组操作
- javascript - 加载后如何显示svg图像?
- reactjs - 为反应原生应用程序集成消息中心的问题