出于某种原因,我无法获得结果集以限制仅具有“普通”价格状态的产品。当我使用如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