Я использую следующий запрос для получения типов доставки из базы данных SQL, запрос получает все типы доставки, связанные со списком продуктов в корзине покупок. Запрос может вернуть минимум два типа доставки для одного продукта или еще много для нескольких продуктов в корзине. Однако мне просто нужны две самые дорогие цены доставки.Получение наивысших значений из базы данных
E.G. Продукт 1 имеет Std Доставка £ 9,99 и 2 Человек доставки £ 29,99 Продукт 2 имеет Std Доставка £ 18,95 и 2 Человек Доставка £ 39,99
Мне нужно, чтобы отобразить на экране типы доставки для продукта 2. Могу ли я использовать max или будет только возвращать самую высокую цену доставки? используется
Запрос:
<cfquery name="getDeliveryType" datasource="#application.dsn#">
SELECT
uid_pdelopt,
txt_pdelopt_type,
mon_pdelopt_cost,
uid_pdelopt_prodid,
txt_pdelopt_detail,
bit_pdelopt_active,
bit_pdelopt_selected,
uid_pdelopt_webid,
uid_pdelopt_typeid,
mon_pdelopt_actcost
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="#arguments.uid_pdelopt_prodid#" list="yes">)
</cfquery>
Все указатели будут оценены.
Jason
Еще раз мое мышление мешало! Однако LIMIT разрешен в SQL, так как я получаю неверный синтаксис около ошибки «LIMIT». Спасибо за ваш быстрый ответ!! –
Я полагаю, что альтернатива TOP, но это приводит к неправильным результатам! –
Если вы используете SQL Server, вам нужно это изменить. LIMIT не работает в SQL Server. Попробуйте 'SELECT TOP 2 uid_pdelopt, ...' вместо –