在每一行显示单独的价格

Display individual prices on each row

我目前正在使用 MS SQL Studio 2017 和 SAP B1。 我正在使用的 table 称为 ITM1 Table。 在这个 table 中有以下字段...

ItemCode、PriceListNo 和价格。

里面的价格表是这样排列的... 1 2 3, 1 2 3, 1 2 3.

每个项目都有 3 个相同的项目代码。并且价格字段包含 £7.00、£14.00、£15.00(例如 1 - 供应商价格,2 - 基价,3 - 零售价)并且价目表字段因选择的价目表编号而异。

我想创建一个 table 来显示... "Item Code, Supplier Price, Base Price, Retail Price"(这些显然是 WHERE PriceListNo = '1'

如何将其显示在一个 table 中。我今天早上一直在尝试案例陈述,但没有成功,我也尝试过子查询,但似乎无法理解它?

我想将上述 table 中的此信息转发到单个 ItemCode 列,但在单个列上显示价格 £14.50、£21、£21 £21 感谢您的帮助

亲切的问候 安迪

有很多不同的方法可以做到这一点。其中之一是像您提到的那样使用 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