Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取错误SQL Server中的无效列名display\u name_Sql_Sql Server - Fatal编程技术网

获取错误SQL Server中的无效列名display\u name

获取错误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

我是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 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,你需要在另一个组语句中进行第二次选择。检查此项以了解为什么不起作用:多亏它现在起作用了