Sql 正在尝试添加“+P”的附加产品组
我刚从一位前员工那里学到工作,而且对SQL非常陌生,我似乎很快就学会了,但由于我们的大多数系统都是实时的,我不敢做出任何剧烈的改变,以防基于这些系统的网站完全崩溃 我的问题是,目前有以下代码:Sql 正在尝试添加“+P”的附加产品组,sql,Sql,我刚从一位前员工那里学到工作,而且对SQL非常陌生,我似乎很快就学会了,但由于我们的大多数系统都是实时的,我不敢做出任何剧烈的改变,以防基于这些系统的网站完全崩溃 我的问题是,目前有以下代码: SELECT * FROM ( SELECT p.product, p.description, p.warehouse, CASE WHEN RIGHT(RTRIM(p.product),2) = '+P' THEN (SELE
SELECT *
FROM
(
SELECT p.product,
p.description,
p.warehouse,
CASE
WHEN RIGHT(RTRIM(p.product),2) = '+P' THEN (SELECT physical_qty - allocated_qty FROM scheme.stockm p2 WHERE p2.warehouse = p.warehouse AND p2.product = REPLACE(p.product, '+P', ''))
WHEN RIGHT(RTRIM(p.product),2) = '+P1' THEN (SELECT physical_qty - allocated_qty FROM scheme.stockm p2 WHERE p2.warehouse = p.warehouse AND p2.product = REPLACE(p.product, '+P1', ''))
ELSE physical_qty - allocated_qty
END AS 'Stock',
CASE
WHEN warehouse = 'X1' THEN trade.price * 0.85
ELSE trade.price * 0.8
END AS 'Price'
FROM scheme.stockm p INNER JOIN
scheme.oplistm AS trade WITH(NOLOCK) ON p.product = trade.product_code AND trade.price_list = 'MT'
WHERE (warehouse = 'X1'
OR warehouse = 'X2')
AND analysis_b <> '0421'
AND analysis_b <> '0531'
AND analysis_b <> '0409'
) AS t
WHERE t.Stock > 0
AND RTRIM(product) + '+P' NOT IN
(SELECT product
FROM scheme.stockm
WHERE warehouse = 'X1'
OR warehouse = 'X2')
AND RTRIM(product) + '+P1' NOT IN
(SELECT product
FROM scheme.stockm
WHERE warehouse = 'X1'
OR warehouse = 'X2')
AND product NOT LIKE 'BAG%'
AND product NOT LIKE 'MDS%'
AND UPPER(description) NOT LIKE '%STAND%'
这段代码浏览了当前所有产品的价目表,除了标题中包含+p的我们的产品系列?我想知道需要对当前代码做些什么才能将产品范围包含在+p中?因为这需要包括在内
任何帮助都将不胜感激
问候
Dean Gent删除和RTRIMproduct+“+p”不在scheme.stockm中的SELECT product FROM scheme.stockm WHERE warehouse='X1'或warehouse='X2'您正在使用哪个DBMS?关系数据库-Microsoft SQL Server感谢您的回复Mihai,但这并没有解决我的问题,只是为了更清楚一点,我只想提供+P型号的价格,所以任何带有+P且产品名称相同的产品都应该取代没有+P的型号。如果它没有+p,那么它只会显示产品的正常价格。