我想根据产品ID对价格进行分组,例如:http://s44.radikal.ru/i106/1108/57/33380d0557f4.jpg但是我无法正确分组,必须有一种产品和几种价格,而不是相同的产品和不同的价格。到目前为止,在Scott Stroz的帮助下,我编写了代码:
查询:
<cfquery name="get_products" datasource="#dsn3#">
SELECT DISTINCT P.PRODUCT_ID,P.PRODUCT_NAME,PS.MONEY,PR.PRICE
FROM PRODUCT P
JOIN PRICE_STANDART PS ON P.PRODUCT_ID = PS.PRODUCT_ID
JOIN PRICE PR ON P.PRODUCT_ID = PR.PRODUCT_ID
WHERE P.IS_SALES=1 AND P.IS_PURCHASE=1 AND P.IS_INTERNET=1 AND PS.PURCHASESALES=1 AND PS.PRICESTANDART_STATUS=1
<cfif len(trim(attributes.product_cat)) and len(attributes.product_code)>AND P.PRODUCT_CODE LIKE '#attributes.product_code#%'</cfif>
<cfif isdefined('attributes.product_id') and len(attributes.product_id)>AND P.PRODUCT_ID=#attributes.product_id#</cfif>
GROUP BY P.PRODUCT_ID,PR.PRICE,P.PRODUCT_NAME,PS.MONEY
ORDER BY PR.PRICE DESC
</cfquery>
和表格:
<table cellpadding="3" cellspacing="1" class="color-border" width="100%">
<tr class="color-header">
<td width="30" class="header_bold">No</td>
<td><b>Ürün</b></td>
<td class="header_bold" width="80">Liste fiyatı</td>
<td class="header_bold" width="80">Bayı 1</td>
<td class="header_bold" width="80">Bayı 2</td>
<td class="header_bold" width="80">Bayı 3</td>
<td class="header_bold" width="80">Bayı 4</td>
<td class="header_bold" width="25">Para</td>
</tr>
<cfoutput query="get_products" startrow="#attributes.startrow#" maxrows="#attributes.maxrows#" group="product_id">
<tr height="20" onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row">
<td>#currentrow#</td>
<td>#product_name#</td>
<cfoutput group="price"><td>#tlformat(price,2)#</td></cfoutput>
<td align="center">#MONEY#</td>
</tr>
</cfoutput>
</table>
谢谢大家的帮助!
答案 0 :(得分:3)
假设您有一个如下所示的查询:
product_id, product_name, price
1, 'test', 100
1, 'test', 200
1, 'test', 300
2, 'test2', 100
2, 'test2', 200
2, 'test2', 300
以下代码将按产品ID分组并输出每个单独的价格
<cfoutput query="get_products" group="product_id">
#product_name#
Prices:
<cfoutput>
#price#<br>
</cfoutput>
</cfoutput>
现在,sql中的group by与cfoutput中的coldfusions组无关。循环出独特的行是一种方便的方法。因此,当coldfusion看到两个相同的“product_id”时,它将运行嵌套的cfoutput循环。
你可以为你想要的多个级别执行此操作,但在你的情况下,似乎只有两个级别。