获取错误SQL Server中的无效列名display\u name
我是SQL Server的新手,当我运行下面显示的查询时,我发现了一个错误 无效的列名显示\u名称 有人能帮我吗?我如何解决这个问题 我的问题是:获取错误SQL Server中的无效列名display\u name,sql,sql-server,Sql,Sql Server,我是SQL Server的新手,当我运行下面显示的查询时,我发现了一个错误 无效的列名显示\u名称 有人能帮我吗?我如何解决这个问题 我的问题是: SELECT 'Nbr of RAPs' AS display_name, MonthRap AS MonthStart, COUNT(DISTINCT tb_Episode.id) AS total FROM tb_Episode WHERE (BranchID = '244' or Bran
SELECT
'Nbr of RAPs' AS display_name,
MonthRap AS MonthStart,
COUNT(DISTINCT tb_Episode.id) AS total
FROM
tb_Episode
WHERE
(BranchID = '244' or BranchID = '242' or BranchID = '240' or BranchID = '243')
AND RAPClaimDate IS NOT NULL
AND RAPClaimDate >= '2017-01-01'
AND RAPClaimDate < '2018-2-01'
AND tb_Episode.CustID = '27'
AND tb_Episode.DTR >= 0
AND tb_Episode.DTR <= '30'
AND tb_Episode.PayorType = 'Medicare Traditional'
GROUP BY
display_name, MonthRap
ORDER BY
tb_Episode.MonthRap ASC
选择
“RAP的Nbr”作为显示名称,
MonthRap作为MonthStart,
将(不同的tb_插曲.id)计为总数
从…起
结核病发作
哪里
(BranchID='244'或BranchID='242'或BranchID='240'或BranchID='243')
并且RAPClaimDate不为空
和RAPClaimDate>=“2017-01-01”
和索赔日期<'2018-2-01'
而tb_eposion.CustID='27'
而tb_.DTR>=0
和tb_eposion.DTR查询应为:
SELECT 'Nbr of RAPs' as display_name,
MonthRap as MonthStart,
count(DISTINCT tb_Episode.id) as total
FROM tb_Episode
WHERE (BranchID = '244' or BranchID = '242' or BranchID = '240' or BranchID = '243')
AND RAPClaimDate is not null
AND RAPClaimDate >= '2017-01-01'
AND RAPClaimDate < '2018-2-01'
AND tb_Episode.CustID = '27'
AND tb_Episode.DTR >= 0
AND tb_Episode.DTR <= '30'
AND tb_Episode.PayorType = 'Medicare Traditional'
GROUP BY MonthRap
ORDER BY tb_Episode.MonthRap asc
选择“RAP的Nbr”作为显示名称,
MonthRap作为MonthStart,
将(不同的tb_插曲.id)计为总数
从tb_插曲
其中(BranchID='244'或BranchID='242'或BranchID='240'或BranchID='243')
并且RAPClaimDate不为空
和RAPClaimDate>=“2017-01-01”
和索赔日期<'2018-2-01'
而tb_eposion.CustID='27'
而tb_.DTR>=0
tb_eposion.DTR它是一个常数,因此不需要通过它进行聚合。此错误的原因是,分组依据
中不允许列别名。查询还存在其他问题。我建议:
SELECT 'Nbr of RAPs' as display_name,
e.MonthRap as MonthStart,
count(*) as total
FROM tb_Episode e
WHERE e.BranchID IN (244, 242, 240, 243) AND
e.RAPClaimDate is not null AND
e.RAPClaimDate >= '2017-01-01' AND
e.RAPClaimDate < '2018-02-01' AND
e.tb_Episode.CustID = 27 AND
e.tb_Episode.DTR >= 0 AND
e.tb_Episode.DTR <= 30 AND
e.tb_Episode.PayorType = 'Medicare Traditional'
GROUP BY MonthRap
ORDER BY e.MonthRap asc;
选择“RAP的Nbr”作为显示名称,
e、 MonthRap作为MonthStart,
将(*)计为总数
来自tb_第e集
其中e.BranchID位于(244、242、240、243)和
e、 RAPClaimDate不为null,并且
e、 RAPClaimDate>=“2017-01-01”和
e、 索赔日期<'2018-02-01'和
e、 tb_Spidence.CustID=27和
e、 tb_eposion.DTR>=0和
e、 tb_eposion.DTR从group by子句中删除display_名称(它是静态字符串,在group by子句中使用它没有任何意义)。正如@Bhatiashish所说,您不能使用ii。如果你想在组语句中使用display_name,你需要在另一个组语句中进行第二次选择。检查此项以了解为什么不起作用:多亏它现在起作用了