我以爲我有這個破解,但它返回到許多結果。我會盡力解釋這一點。來自SQL查詢的最大值
我有一張表,它包含產品的交付類型(即一個人交貨,雙人交貨)信息。每個產品的交貨成本會有所不同,每個產品可能有多種交貨類型。
如果用戶將兩種產品添加到購物車中,我需要顯示購物車中任一產品的最昂貴的配送選項。
EG。
Product 1
id=2
Delivery Type=One Man delivery
Cost=**£30**
id=2
Delivery Type=Two Man delivery
Cost=£40
Product 2
id=4
Delivery Type=One Man delivery
Cost=£40
id=4
Delivery Type=Two Man delivery
Cost=**£60**
The results should be;
id=4
Delivery Type=Two Man delivery
Cost=**£60**
id=2
Delivery Type=One Man delivery
Cost=**£30**
我還需要獲取表格的uid
。這停止查詢獲得正確的結果。它將返回所有交付類型。如果我刪除uid
它會顯示正確的結果。它似乎阻止了小組。
<cfquery name="getDeliveryType" datasource="#application.dsn#">
SELECT txt_pdelopt_type, MAX(mon_pdelopt_actcost) AS myCost, uid_pdelopt
FROM dbo.tbl_product_deliveryopt
WHERE bit_pdelopt_active=<cfqueryparam cfsqltype="cf_sql_bit" value="yes">
AND uid_pdelopt_prodid IN (<cfqueryparam cfsqltype="cf_sql_integer" value="4,5" list="yes">)
GROUP BY txt_pdelopt_type, uid_pdelopt
ORDER BY myCost DESC
</cfquery>
解決此問題的最佳方法是什麼?任何幫助表示讚賞。
我想我給自己賣了一個假人!如果我有兩種產品具有相同的交貨選項和成本,我可以得到所有交貨類型,因爲沒有一種成本比每一種都大。
現在這裏遲到了,我很困惑自己,更別說你們試圖幫忙!
所以我不知道我想要做什麼就是要實現我所需要的!
讓我們試着從頭開始;
表:tbl_product_deliveryopt
UID:uid_pdelopt
產品編號:uid_pdelopt_prodid
交貨類型:txt_pdelopt_type
費用:與產品有關的mon_pdelopt_actcost
此表包含交付類型。產品uid是uid_products
。
每種產品都可以有多種交貨類型,例如單人交貨,雙人交貨。
根據產品的尺寸,每種交付類型可能會有不同的成本。
如果將兩件產品添加到購物車中,我首先需要找到最親愛的運費,然後顯示我們發現的最高成本以及我們發現的最高成本的其他選項。
EG:
產品1
德爾類型:單曼
價格:£20
的ProdID:3
產品1
德爾型:雙曼
成本:£40
產品編號:3
產品2
德爾類型:單曼
價格:£10
的ProdID:4
產品2
德爾型:雙曼
價格:£20
的ProdID:4
由於產品1具有我需要顯示產品1的運費。
但是,兩種產品可能具有相同的送貨費用,在這種情況下,我仍然只需要顯示一組選項,但它們必須具有相同的uid_pdelopt_prodid
。
換句話說,我不能顯示它們需要與uid_pdelopt_prodid
相關的選項的混合。
這是否說明它更好?
我的要求根本不清楚 - 你能簡化你的例子嗎?例如樣本數據和期望的輸出。另外,coldfusion與問題有關嗎? – ninesided 2012-02-23 23:41:53
你可以發表ddl嗎?列名稱有點神祕。目前還不清楚哪些id與硬編碼列表有關:'4,5'。另外,將sql數據庫類型包含sql問題總是很好。 – Leigh 2012-02-24 01:03:20