使用表

时间:2017-06-21 18:25:47

标签: sql sql-server

为什么我的查询无效?错误消息表明它不喜欢tbl_License。为什么?错误是#102。 ","附近的语法不正确。仅有8个别名。 F和H是此查询的传递,也是传递。我知道传递工作的传递。请指教。

SELECT D.status_name, A.prvdr_key, A.prvdr_id, G.licn_no, H.spec_name, A.last_name, A.first_name, A.mid_name, F.cred_key, F.pstat_name, F.CRD, F.[PODM Rec], F.created_on, F.cs_date, F.cc_date, D.actiondate, B.value, C.[Parent Org Name], C.PCP_RCIRC_DESC
FROM dbo.personal A
LEFT JOIN dbo.nitmlink B
ON A.prvdr_key = B.link_key
LEFT JOIN tblReferralCircles C
ON B.value = C.PCP_RCIRC_CD
LEFT JOIN dbo.commlink D
ON A.prvdr_key = D.link_key
INNER JOIN dbo.provstat E
ON A.pstat_key = E.pstat_key
INNER JOIN (SELECT A.prvdr_key, B.cred_key, C.pstat_name, B.created_on, B.cs_date, B.cc_date, E.CRD, E.[PODM Rec]
FROM dbo.personal A
INNER JOIN dbo.cred B
ON A.prvdr_key = B.prvdr_key
INNER JOIN dbo.procstat C
ON B.proc_stat = C.pstat_key
LEFT JOIN (SELECT A.prvdr_key, A.last_name, A.first_name, A.mid_name, C.cont_desc, D.join_date AS CRD, D.sign_date AS [PODM Rec], D.term_date
FROM (dbo.personal A 
INNER JOIN dbo.ProvPracLoc B 
ON A.prvdr_key = B.prvdr_key)
INNER JOIN (dbo.contract C INNER JOIN dbo.contlink D 
ON C.cont_key = D.cont_key) 
ON B.prac_key = D.prac_key
WHERE (((C.cont_desc)='Contract Received') AND ((D.term_date) Is Null))) E
ON A.prvdr_key = E.prvdr_key
INNER JOIN dbo.provstat D
ON A.pstat_key = D.pstat_key
WHERE (D.status_name NOT Like 'inactive%') AND C.pstat_name NOT LIKE '%disc%' AND C.pstat_name NOT LIKE 'problem%' AND C.pstat_name NOT LIKE '%not due' AND B.cc_date>=DateAdd(DAY,-30,'5/1/2017')
GROUP BY A.prvdr_key, B.cred_key, C.pstat_name, B.created_on, B.cs_date, B.cc_date, E.CRD, E.[PODM Rec]) F
ON A.prvdr_key = F.prvdr_key
LEFT JOIN tbllicense G
ON A.prvdr_key = G.link_key
LEFT JOIN (SELECT A.prvdr_key, A.primaryx, B.spec_name
FROM dbo.speclink A
INNER JOIN dbo.specialt B
ON A.spec_key = B.spec_key
WHERE (A.primaryx = '1')) H
ON A.prvdr_key = H.prvdr_key    
WHERE D.status_name NOT LIKE 'inactive%' AND E.pstat_name NOT LIKE '%disc%' AND E.pstat_name NOT LIKE 'cred not due' AND E.pstat_name NOT LIKE 'Problem Hold' AND C.actiondate Between (DAY,-30,'5/1/2017') AND '5/31/2017'
GROUP BY D.status_name, A.prvdr_key, A.prvdr_id, G.licn_no, H.spec_name, A.last_name, A.first_name, A.mid_name, F.cred_key, F.pstat_name, F.CRD, F.[PODM Rec], F.created_on, F.cs_date, F.cc_date, D.actiondate, B.value, C.[Parent Org Name], C.PCP_RCIRC_DESC;

1 个答案:

答案 0 :(得分:0)

您有一个分组,没有聚合,并且您有一个在SQL Server中不存在的功能。删除组并将其更改为where子句应该删除一些错误,并至少在您删除日期中未命名的函数后返回...

SELECT 
    D.status_name, 
    A.prvdr_key, 
    A.prvdr_id, 
    G.licn_no, 
    H.spec_name, 
    A.last_name, 
    A.first_name, 
    A.mid_name, 
    D.actiondate, 
    B.value, 
    C.[Parent Org Name], 
    C.PCP_RCIRC_DESC
FROM 
    dbo.personal A
    LEFT JOIN 
        dbo.nitmlink B
        ON A.prvdr_key = B.link_key
    LEFT JOIN 
        tbl_ReferralCircles C
        ON B.value = C.PCP_RCIRC_CD
    LEFT JOIN 
        dbo.commlink D
        ON A.prvdr_key = D.link_key
--GROUP BY D.status_name, A.prvdr_key, A.prvdr_id, A.last_name, A.first_name, A.mid_name, D.actiondate, B.value, C.[Parent Org Name], C.PCP_RCIRC_DESC
where 
    D.status_name Not Like 'inactive%' 
    AND C.actiondate Between '5/1/2017' And '5/31/2017'