ColdFusion cfselect显示两个查询列



我试图显示查询的结果,但是我很难组合查询产生的两个值…这是我的查询

    <cffunction name="getStudentData"  returntype="query">
    <cfargument name="nameVar" type="string" required="yes">
    <cfargument name="timeframe" type="numeric" required="yes">
    <cfquery datasource="#Application.hds#" name="gsd">
    select (s.lastname + ', ' + s.firstname) as StudData,
    ('[' + r.hallname + ' ' + r.roomnumber + ']')  as roomdata,
     s.studentnumber
    from tblstudents s left join 
    (select h.hallname, ra.roomnumber, studentid 
    from tblroomassignments ra, tblhalls h
    where ra.TimeFrame = #Arguments.timeframe# 
    and ra.hallid = h.hallid) r
    on s.studentid = r.studentid
    where s.lastname like '#Arguments.nameVar#%'
    </cfquery>
    <cfreturn #gsd#>
    </cffunction>

我想弄清楚的是如何显示StudData+' '+roomdata如果他们都存在在一起,因为有些学生不会有一个房间分配给他们。(我只是想列出一份分配了宿舍/房间的学生名单。

<cfselect name="RecipientName"
          query="studentdata"
          display="StudData+' '+roomdata"???????
          value="studentnumber">
</cfselect>

我不知道如何在显示属性中获得StudData和roomdata,而没有页面给我查询列错误。我对冷融合很陌生,我的理解是你只能显示一个变量?是否有一种方法将StudData和roomdata组合成一个变量,然后显示该变量?

有人有什么想法吗?这可以简化吗?希望这一切都有意义!

我根本不会使用cfselect

<select name="RecipientName">
  <cfoutput query="studentdata">
    <option value="#studentnumber#">#StudData# #roomdata#</option>
  </cfoutput>
</select>

如果您真的想使用cfselect,那么我会将查询中的列连接起来。

StudData + roomdata AS expanded_student_data
...
<cfselect name="RecipientName"
  query="studentdata"
  display="expanded_student_data"
  value="studentnumber"
>
</cfselect>

最新更新