これまでお世話になりました。前スレの続きです。
私がやりたいことは、結果のフィールドの 1 つ (PROJECT_ID としましょう) の値を置き換えて、このようなことを行うことです。これが単純なものであることを願っています。しかし、このプロジェクトにはまだまだあります。
select oc.ncr_no,
max(case when OC.LU_NAME = 'Project' then OC.KEY_REF end) PROJECT_ID,
max(case when OC.LU_NAME = 'SupplierInfo' then OC.KEY_REF end) SUPPLIER_ID,
max(case when OC.LU_NAME = 'PurchaseOrder' then OC.KEY_REF end) ORDER_NO,
max(case when OC.LU_NAME = 'PurchaseReceipt' then OC.KEY_REF end) PURCHASE_RECEIPT,
max(case when OC.LU_NAME = 'InventoryPart' then OC.KEY_REF end) INVENTORY_PART,
replace(PROJECT_ID,'PROJECT_ID=','') as PROJECT_ID
from OC
group by oc.ncr_no
このスキーマを例に使用しました (SQL Fiddle から取得)。残念ながら保存方法がわかりません。
CREATE TABLE OC
(
[NCR_NO] int,
[LU_NAME] varchar(15),
[KEY_REF] varchar(33)
);
INSERT INTO OC ([NCR_NO], [LU_NAME], [KEY_REF])
VALUES
(100001, 'Project', 'PROJECT_ID=PROJECT1^'),
(100001, 'SupplierInfo', 'SUPPLIER_ID=UNIQUESUPPLIERNUMBER^'),
(100001, 'PurchaseOrder', 'ORDER_NO=UNIQUEORDERNO^'),
(100196, 'PurchaseReceipt', 'UNIQUE PURCHASE RECEIPT'),
(100511, 'InventoryPart', 'CONTRACT=UNIQUECONTRACTNO');