如何在cfoutput中显示不同的值

问题描述 投票:0回答:1

我有一个返回数据库结果的查询。它返回重复的信息。我想阻止显示重复的数据。

我的意思是重复数据是承认日期,服务日期和出院日期列重复相同的数据(在这种情况下是日期)。因此,如果日期是10/05/2019,则对于“录取日期”,它将重复该日期2次或更多次。这是由于“处理日期”列,其中提交查询的过程在不同日期完成,并导致其他日期重复两次。

Duplicate Dates

我最初尝试在我的查询中使用SELECT DISTINCT Column1, Column2, ... FROM Data,但它出错了。以下是我得到的错误:

执行数据库查询时出错。 [Macromedia] [SQLServer JDBC驱动程序] [SQLServer]无法将文本数据类型选为DISTINCT,因为它不具有可比性。

我究竟做错了什么?任何帮助,将不胜感激

这是我最近的尝试:

<cfquery name="name" datasource="source">
        SELECT First_Name, 
               Last_Name, 
               DOB, Sex, 
               Service, 
               Service_Desc, 
               Distinct(service_dt) AS Service_Dt, 
               Distinct(admit_dt) AS Admit_Dt, 
               Phone, 
               Address1, 
               Address2, 
               City, 
               State, 
               Zip, 
               Account, 
               Hosp_Name,
               MR_Number, 
               Insurance, 
               Plan_Name, 
               Policy_No, 
               Group_No, 
               Reason_For_Visit, 
               Distinct(process_dt) AS Process_Dt,
               Distinct(discharge_dt) AS Discharge_Dt,
               [Pt Class] as PtClass
        FROM DATA
        WHERE 
            First_Name = <cfqueryparam value="#FName#" cfsqltype="cf_sql_varchar">
            AND
            Last_Name = <cfqueryparam value="#LName#" cfsqltype="cf_sql_varchar">
            AND
            DOB = <cfqueryparam value="#BirthDt#" cfsqltype="cf_sql_varchar">
            AND
            Hosp_Name like <cfqueryparam value="#Hosp#" cfsqltype="cf_sql_varchar">
    </cfquery>
sql-server tsql coldfusion
1个回答
4
投票

首先,这纯粹是一个SQL问题,而不是ColdFusion问题。

您的数据对于所有记录都是一致的,但不同的日期列除外?假设user_id = 1有四条记录:

| user_id | admit_date | service_date | process_date | discharge_date |
| ------- | ---------- | ------------ | ------------ | -------------- |
| 1       | 2018-01-01 | 2018-01-01   | 2018-01-02   | 2018-01-05     |
| 1       | 2018-01-01 | 2018-01-02   | 2018-01-02   | 2018-01-05     |
| 1       | 2018-01-01 | 2018-01-03   | 2018-01-03   | 2018-01-05     |
| 1       | 2018-01-01 | 2018-01-04   | 2018-01-04   | 2018-01-05     |

这是一个人的数据吗?

我想象这个数据只是一个聚合数据转储,所以admit_date对于所有4条记录都是一样的,就像discharge_date一样。每个记录的其他两个日期不同。因为这个用户具有相同的名字,姓氏,dob并且位于同一家医院,所以它符合您的查询条件。

如果这是好的数据,那么选择一个独特的admit_date将给我4条记录,选择一个独特的discharge_date

  • 您是否正在尝试为此用户或所有用户查找最新记录?
  • 你想找到第一个吗?
  • 你究竟想从这些数据中提取出什么?

如果您想显示按单个日期分组的数据输出,这非常简单:

<cfoutput query="qData" group="user_id">
    <!--- Output User Info here. --->
    <cfoutput group="admit_date">
        <!--- 
            This will loop over all records of the same 
            admit_date for the current user ID. 
        --->
        <cfoutput>
            More output.
        </cfoutput
    </cfoutput>
</cfoutput>
© www.soinside.com 2019 - 2024. All rights reserved.