首页 > 解决方案 > 为基于 SQL 的报告显示的字符数

问题描述

我正在尝试修改使用 SQL 显示健康评估的报告。在报告中,我想为添加到健康评估中的评论添加一个部分。我能够添加评论部分,并根据此处提供的建议,我使用 SUBSTRING 将报告中显示的字符数限制为 1000,而不是 8000。我现在遇到的问题是限制字符数显示为“其他”选项,如下所示。我对所有评估都使用了 SUBSTRING(例如:SUBSTRING(HltNutrition.Comment, 1, 1000)),并将营养评估作为示例(工作正常)以及以“其他”为特色的代码片段(慢性) 选项(无法正常工作)。我用 1 替换了 3 虽然这没有产生错误,对于 SUBSTRING([HealthAssessName].Comment, 1, 1000),它对“其他”没有预期的效果。任何帮助表示赞赏。先感谢您。

  -- Nutrition
  INSERT INTO #ChronicCondition(IdApplicant, ExamDate, Condition, TreatmentNeeded, TreatmentReceived, Status, Comment)
    SELECT  #Enroll.IdApplicant,
            HltNutrition.ExamDate,
            'Nutrition',
            HltNutrition.TrtNeed,
            HltNutrition.TrtStatus,
            HltNutrition.Status,
            SUBSTRING (HltNutrition.Comment, 1, 1000)
    FROM    #Enroll
            JOIN HltNutrition ON HltNutrition.IdApplicant = #Enroll.IdApplicant
    WHERE   HltNutrition.Overweight = 1  

  -- Chronic
  INSERT INTO #ChronicCondition(IdApplicant, ExamDate, Condition, TreatmentNeeded, TreatmentReceived, Status, Comment)
    SELECT  #Enroll.IdApplicant,
            HltChronic.ExamDate,
            CASE ChronicCondition.Id
              WHEN 3 THEN 'Other' + ISNULL(' - ' + hltChronic.ConditionOther, '')
              ELSE ChronicCondition.Condition
            END,
            HltChronic.TrtNeed,
            HltChronic.TrtStatus,
            hltChronic.Status,
            SUBSTRING (HltChronic.Comment, 1, 1000)
    FROM    #Enroll 
            JOIN hltChronic ON hltChronic.idApplicant = #Enroll.idApplicant
            JOIN ChronicCondition ON ChronicCondition.Id = hltChronic.Condition

标签: sqlsql-server

解决方案


感谢您的帮助,我与高级开发人员一起讨论了问题,发现SUBSTRING功能不是问题的原因。我遇到的问题是由于用于测试报告的数据输入。我添加的代码实际上是正确的,问题已经解决。

再次感谢您提供的任何帮助。


推荐阅读