ColdFusion cfselect显示两个查询列

时间:2015-05-27 16:51:53

标签: sql 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 +&#39; &#39; + roomdata如果它们一起存在,因为有些学生没有分配给他们的房间。 (我只想制作一份有宿舍/房间分配给他们的学生名单。在我的cfselect中...

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

我不知道如何在display属性中获取StudData和roomdata,而不会让页面显示查询列错误。我对coldfusion很新,我的理解是你只能显示一个变量吗?有没有办法将StudData和roomdata组合成一个变量,然后显示该变量?

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

1 个答案:

答案 0 :(得分:4)

我根本不会使用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>