CREATE TABLE logistics (
id int primary key,
campaign VARCHAR(255),
quantity_offered VARCHAR(255),
quantity_ordered VARCHAR(255),
quantity_delivered VARCHAR(255),
quantity_recorded VARCHAR(255),
quantity_completed VARCHAR(255)
);
INSERT INTO logistics
(id, campaign,
quantity_offered, quantity_ordered, quantity_delivered,
quantity_recorded, quantity_completed
)
VALUES
("1", "C001", "500", "450", "465", "462", "465"),
("2", "C002", "700", "570", NULL, NULL, NULL),
("3", "C003", "600", "610", "605", "602", NULL),
("4", "C004", "300", NULL, NULL, NULL, NULL),
("5", "C005", "400", "425", NULL, NULL, NULL),
("6", "C006", "900", "870", "868", NULL, NULL),
("7", "C007", "350", "360", "372", "375", "390"),
("8", "C008", "250", "290", NULL, NULL, NULL);
在上表中,我有不同的campaigns
及其对应的quantities
。quantities
用不同的columns
填充。
现在,我要基于以下层次结构为每个campaign
获取最新可用数量]
quantity_completed > quantity_recorded > quantity_delivered > quantity_ordered > quantity_offered
结果应如下所示:
Campaign Quantity C001 465 C002 570 C003 602 C004 300 C005 425 C006 870 C007 390 C008 290
我需要实现什么查询?
DB-Fiddle创建表物流(id int主键,活动VARCHAR(255),提供数量VARCHAR(255),提供数量VARCHAR(255),提供数量VARCHAR(255),...
coalesce()
:select l.campaign, coalesce(quantity_completed, quantity_recorded, quantity_delivered, quantity_ordered, quantity_offered) as quantity
from logistics;