こんにちはすべて私はそれらのための製品と価格のテーブルがあります。私がやろうとしていますすべては、各製品の最低価格を表示することです、それはここで価格はnullとの価格表のショーの製品に存在しない場合、私はelse文がmysqlで動作しません
SELECT
t15_catalogue_line.T15_GROUP, sc_products.product_code,sc_products.unic,
sc_products.name_ru, UPPER(TRIM(sc_products.brief_description_ru)) AS
brief_description_ru, sc_products.suupplier, price.Price,
sc_group_discounts.`action`, sc_group_discounts.procent,
sc_products.productID, price.in_stock, price.supplier, t10_item.T10_ITEM,
t10_item.unic, t10_item.T10_DESC, t10_item.T10_IMG, t10_item.T10_ITEM_GROUP,
t10_item.T10_FIELD1, t10_item.T10_FIELD2, t10_item.T10_FIELD3,
t10_item.T10_FIELD4, t10_item.T10_FIELD5, t10_item.T10_FIELD6,
t10_item.T10_FIELD7, t10_item.T10_FIELD8, t10_item.T10_FIELD9,
t10_item.T10_FIELD10, t10_item.T10_FIELD11, t14_item_fields.T14_ITEM_GROUP,
t14_item_fields.T14_FIELD, t14_item_fields.T14_NAME,
t14_item_fields.T14_UNIT, t14_item_fields.T14_SEARCH
FROM sc_products
LEFT OUTER JOIN t15_catalogue_line ON (sc_products.unic = t15_catalogue_line.unic)
LEFT OUTER JOIN price ON (sc_products.product_code = price.item) AND (sc_products.suupplier = price.postavchik)
LEFT OUTER JOIN sc_group_discounts ON (sc_products.item_group = sc_group_discounts.item_group)
LEFT OUTER JOIN t10_item ON (sc_products.unic = t10_item.unic and sc_products.CatText=t10_item.CatText)
LEFT OUTER JOIN t14_item_fields ON (t10_item.T10_ITEM_GROUP = t14_item_fields.T14_ITEM_GROUP)
WHERE sc_products.CatText = 'bearing'
AND t15_catalogue_line.T15_CARTYPE = '42769'
AND t15_catalogue_line.T15_GROUP = '546678' and sc_products.unic is not null and sc_products. unic!='' and
CASE WHEN price.Price is null then price.Price is null else price.Price=(SELECT
MIN(price.Price) from price where price.unic=sc_products.unic
AND price.CatText='bearing') end
GROUP BY sc_products.unic
ORDER by isnull (price.Price),price.Price ASC
を書いたクエリは、今では、価格のヌルとのみを示していますelseステートメントが機能しませんでした。
が代わりにエンド例AND CASE
WHEN price.Price IS NULL THEN NULL
ELSE
(
SELECT
MIN(price.Price)
FROM
price
WHERE
price.unic = sc_products.unic
AND price.CatText = 'bearing'
)
END
あなたはこのように、AND
条件を使用する必要があります:
AND ( (price.CatText = 'bearing' AND price.unic = sc_products.unic)
OR (price.CatText = 'bearing' AND price.unic is numm) )
と分の最終的選択をあなたのcase
あなたがTHEN NULL
、ないTHEN price.Price IS NULL
使用しなければならないで
としてフィールドの順序を入れ替えるクエリ – nbirla