出於某種原因,我無法獲得結果集以限制僅具有「普通」價格狀態的產品。當我使用如where pricestatus like 'normal'
這樣的where子句時,結果集也會過濾其他記錄。這裏的任何想法?無法過濾SQL Server查詢中設置的結果
SELECT
od.order_id,
ISNULL(p.pricestatus,'normal') as pricestatus,
ISNULL(od.partnumber,'unknown') as partnumber,
od.product_id,
od.producttitle,
qty,
od.price,
extprice,
customfield1 AS prodstatus,
ISNULL(categorytitle,'-') AS categorytitle,
needbydate,
customfield2 AS vendor,
(SELECT opttitle
FROM options o
WHERE Charindex(',' + Cast(o.opt_id AS VARCHAR) + ',',',' + opt_ids + ',') > 0
AND optlevel = 1) AS color,
(SELECT opttitle
FROM options o
WHERE Charindex(',' + Cast(o.opt_id AS VARCHAR) + ',',',' + opt_ids + ',') > 0
AND optlevel = 2) AS size,
od.producttitle + ISNULL((SELECT opttitle
FROM options o
WHERE Charindex(',' + Cast(o.opt_id AS VARCHAR) + ',',',' + opt_ids + ',') > 0
AND optlevel = 1),'') + ISNULL((SELECT opttitle
FROM options o
WHERE Charindex(',' + Cast(o.opt_id AS VARCHAR) + ',',',' + opt_ids + ',') > 0
AND optlevel = 2),'') + Cast(od.price AS VARCHAR(15)) AS pkey
FROM
orderdetails od
INNER JOIN orders ord ON ord.order_id = od.order_id
LEFT OUTER JOIN products p ON p.product_id = od.product_id
LEFT OUTER JOIN objectgroups ob ON p.objectgroup_id = ob.objectgroup_id
LEFT OUTER JOIN categories c ON ob.category_id = c.category_id
WHERE
1=1
AND ord.shippingdate BETWEEN {ts '2009-10-05 00:01:00'} AND {ts '2009-10-21 23:59:59'}
AND ISNULL(ord.status,0) IN (5,12)
AND ISNULL(ord.status,0) <> 6
AND ISNULL(ord.status,0) <> 10
AND ISNULL(ord.status,0) <> 7
AND ISNULL(ord.status,0) <> 8
ORDER BY
pkey
你這人賈斯汀。你解決了我的問題。 – jeff 2009-12-08 16:01:47
不客氣,傑夫:) – 2009-12-08 16:21:24