我当前正在使用MS SQL Studio 2017和SAP B1。 我正在使用的表称为ITM1表。 该表内有以下字段...
ItemCode,PriceListNo和Price。
在价目表中,其顺序如下... 1 2 3、1 2 3、1 2 3。
每个商品都有3个相同的商品代码。并且价格字段包含7.00英镑,14.00英镑,15.00英镑(例如1-供应商价格,2-基准价格,3-零售价格),并且价格列表字段取决于选择的价格列表编号而有所不同。
我想创建一个显示以下内容的表格:“项目代码,供应商价格,基准价格,零售价格”(这些显然是WHERE PriceListNo ='1'
如何将其显示在一个表中。我今天早上一直在尝试案例陈述,但没有运气,我也尝试过子查询,似乎无法理解吗?
我想将上表中的此信息传递给单个ItemCode列,但在单独的列上显示价格£14.50,£21,£21£21 感谢您的帮助
亲切问候 安迪
答案 0 :(得分:1)
有很多不同的方法可以做到这一点。其中之一就是使用您提到的CASE;
CREATE TABLE dbo.ITM1
(
ItemCode VARCHAR(64),
PriceListNo INTEGER,
Price DECIMAL(18,9)
);
INSERT INTO ITM1 VALUES ('AHV16',1, 7.00),
('AHV16',2, 14.00),
('AHV16',3, 15.00),
('AHV16',4, 18.00);
SELECT t.ItemCode,
SUM(CASE WHEN t.PriceListNo = 1 THEN t.Price END) [Supplier Price],
SUM(CASE WHEN t.PriceListNo = 2 THEN t.Price END) [Base Price],
SUM(CASE WHEN t.PriceListNo = 3 THEN t.Price END) [Retail Price],
SUM(CASE WHEN t.PriceListNo = 4 THEN t.Price END) [Internet Price]
FROM dbo.ITM1 t
GROUP BY t.ItemCode