如何在cfoutput中显示不同的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在cfoutput中显示不同的值相关的知识,希望对你有一定的参考价值。
我有一个返回数据库结果的查询。它返回重复的信息。我想阻止显示重复的数据。
我的意思是重复数据是承认日期,服务日期和出院日期列重复相同的数据(在这种情况下是日期)。因此,如果日期是10/05/2019,则对于“录取日期”,它将重复该日期2次或更多次。这是由于“处理日期”列,其中提交查询的过程在不同日期完成,并导致其他日期重复两次。
我最初尝试在我的查询中使用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
问题,而不是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>
以上是关于如何在cfoutput中显示不同的值的主要内容,如果未能解决你的问题,请参考以下文章