【问题标题】:Stored procedure for a select statement选择语句的存储过程
【发布时间】:2014-03-01 20:33:30
【问题描述】:

我得到了一个选择语句。我想在这个 select 语句中添加一个连接,我想添加的连接位于这段代码的底部。为什么我无法为此选择语句再添加一个左外连接?我要添加的连接位于底部。我还需要为整个select语句写一个存储过程:

SELECT
    FactId, UserType,
    wr.WorkRequestId, wr.XerisUserKey, 
    xu.CsuserUserID UserId, 
    u.fname UserFName, u.lname UserLName,
    b.PatientId, p.firstname PatFName, p.lastname PatLName,
    GroupId, HospiceGroupKey GroupKey, WR.ContactKey,
    C.ContactId, C.FirstName, C.LastName,
    Convert(datetime, (Convert(varchar, SD.Date, 101) + ' ' + ST.TimeOfDay ))  Start_dtm,
    Convert(datetime, (Convert(varchar, CD.Date, 101) + ' ' + CT.TimeOfDay ))  End_dtm,
    DATEDIFF(s,Convert(datetime,(Convert(varchar, SD.Date, 101) + ' ' + ST.TimeOfDay)),
    Convert(datetime, (Convert(varchar, CD.Date, 101) + ' ' + CT.TimeOfDay )))  WRDuration,
    (Convert(Decimal(18, 3), DATEDIFF(s, Convert(datetime,(Convert(varchar, SD.Date, 101) + ' ' + ST.TimeOfDay )),
    Convert(datetime, (Convert(varchar, CD.Date, 101) + ' ' + CT.TimeOfDay ))))) * 
                (Convert(Decimal(18,3),LineItemCount)/Convert(Decimal(18,3),PatientBucketItemCount)) Duration,
    CallBackNumber, WorkRequestType,
    B.LineItemCount, ArchiveLocation, Processed,
    ArchiveQueueType, TQA, Exclude, CallId
FROM 
    bi.dbo.FactWorkRequestTouches (NOlock) WR
INNER JOIN 
    bi.dbo.BridgePatientWorkRequest B ON B.WorkRequestId = WR.WorkRequestId
INNER JOIN 
    bi.dbo.dimPatient (NOlock) P ON B.PatientId = P.CphPatientID
INNER JOIN 
    bi.dbo.DimXerisUsers (NOlock) XU ON WR.XerisUserKey = XU.XerisUserKey
INNER JOIN 
    cdc.dbo.csuser (NOlock) U ON XU.CsuserUserID = u.user_id
INNER JOIN 
    bi.dbo.DimTimeOfDay (NOlock) ST ON WR.StartTimeOfDayKey = ST.TimeKey
INNER JOIN 
    bi.dbo.DimTimeOfDay (NOlock) CT ON WR.CompletedTimeOfDayKey = CT.TimeKey
INNER JOIN 
    bi.dbo.DimDate (NOlock) SD ON WR.StartDateKey = SD.DateKey
INNER JOIN 
    bi.dbo.DimDate (NOlock) CD ON WR.CompletedDateKey = CD.DateKey
LEFT OUTER JOIN 
    bi.dbo.DimContact (Nolock) C ON WR.ContactKey = C.ContactKey
WHERE 
    CompletedDateKey = '20140131'
    AND ArchiveQueueType = 0
    AND PatientBucketItemCount <> 0
    AND Exclude = 0
    AND P.ENDDate is Null

这是我要添加到此 select 语句中的联接

left outer join 
    ssdba.excelleRx_WebFOCUS.dbo.DimHospiceHiearchy (nolock) h on b.groupid = h.group_id

【问题讨论】:

  • 编辑您的帖子,向我们展示添加 JOIN 时查询的样子,并告诉我们您遇到了什么错误。
  • 在 WHERE 之前添加您的 JOIN,如果我的直觉正确的话。
  • 我收到错误消息 4122,级别 16,状态 1,第 34 行不允许远程表值函数调用。
  • Msg 4122, Level 16, State 1, Line 34 不允许远程表值函数调用。
  • @RBarryYoung 我添加的join在底部,在where语句之前添加了

标签: sql sql-server sql-server-2008 stored-procedures join


【解决方案1】:

【讨论】:

  • 其实nolock有错误。得到解决方案。感谢您花时间提供帮助
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多