Я пытаюсь создать массив, который даст мне все значения из моего списка, а затем на основе записей из cfquery I wan, чтобы получать значения в течение многих лет. Чтобы сделать это более ясным, я покажу вам ниже, как мой массив должен выглядеть так:Как построить массив из списка и cfquery?
time slot year2015 year 2016
0700 0 0
0715 1 0
0730 0 0
0745 0 0
0800 0 5
и так далее. Мои значения времени слотов хранятся в <cfset dataList>
и выглядит следующим образом:
<cfloop list="#ListGetAt(dataList,i,",")#" index="k" delimiters="|">
<cfoutput>#k#</cfoutput>
</cfloop>
0600 0615 0630 0645 0700 0715 0730 0745 0800 0815 0830 0845 0900 0915 0930 0945 1000 1015 1030 1045 1100 1115 1130 1145 1200 1215 1230 1245 1300 1315 1330 1345 1400 1415 1430 1445 1500 1515 1530 1545 1600 1615 1630 1645 1700 1800 1900 2000 2100 2200 2300 0000
Моих временный интервал, года и значение для каждого года, выведенные из cfquery который выглядит следующим образом:
<cfoutput query="getRecords" group="YearRecord">
<cfoutput>
#TimeSlot# - #YearRecord# - #ValueYear#<br/>
</cfoutput>
</cfoutput>
0830 - 2015 - 2
0915 - 2015 - 2
1000 - 2015 - 1
0630 - 2016 - 1
0800 - 2016 - 1
Моих записи из двух разных мест. Временные интервалы из моего списка и записи с действительными значениями из моей cfquery. Поэтому я хочу создать свой массив, содержащий все записи из моего списка, и для каждой записи я хочу вывести годный столбец с допустимым значением. Так что я попытался первым, чтобы заполнить мой массив с элементами из списка:
<cfset myArray=ArrayNew(1)>
<cfloop list="#ListGetAt(dataList,i,",")#" index="z" delimiters="|">
<cfoutput>
#myArray[z]#
</cfoutput>
</cfloop>
и этот код дает мне ошибку:
Type: Expression ********** Line: 253 ********** ********** The element at position 600 of dimension 1, of array variable "MYARRAY," cannot be found.
Кроме того, после я заполнить массив, я бы добавить еще два элемента к этому массиву. Год и значения для каждого года. Если кто-то знает, что я делаю неправильно, и что это лучший способ сделать это, пожалуйста, дайте мне знать. Заранее спасибо.
Почему бы просто не использовать один [PIVOT] (https://technet.microsoft .com/en-us/library/ms177410% 28v = sql.105% 29.aspx) или даже более старая 'SUM (CASE ...)' техника? – Leigh
Я пробовал это, но позже у меня возникла проблема с циклом внутри списка. –
Какая проблема? Можете ли вы показать код? – Leigh