【发布时间】:2021-06-09 20:25:53
【问题描述】:
我一直在尝试正确地用这个词,但这是我的dbfiddle
表:
Customerkey int NOT NULL PRIMARY KEY,
processdate date NULL,
CCcount int NULL,
CHKcount int NULL,
SACount int NULL
);
INSERT INTO products
(Customerkey, processdate, CCcount, CHKCount, SACount)
VALUES
(101,'20210501', 12,3,5),
(102,'20210203', 1,3,1),
(103,'20190412', 4,0,2)
SELECT CustomerKey, processdate,
ProductMix=STUFF
(
(
SELECT distinct ',' + str(CCcount) + ',' + str(CHKCount) + ',' + str(SACount)
FROM products t2
WHERE t2.CustomerKey = t1.CustomerKey
and t2.processdate = t1.processdate
),1,1,''
)
FROM products t1
GROUP BY CustomerKey, processdate
SELECT CustomerKey, processdate,
concat(
Case when CCcount >' ' then 'CCcount'
when CHKCount > '' then 'CHKCount'
when SACount > '' then 'SACount'
end, '') as Product_Mix_Expanded
from products
预期输出:
| CustomerKey | processdate | Product_Mix | Product_Mix_Expanded |
|---|---|---|---|
| 101 | 2021-05-01 | 12,3,5 | CCcount, CHKCount, SACount |
| 102 | 2021-02-03 | 1,3,1 | CCcount, CHKCount, SACount |
| 103 | 2019-04-12 | 4,0,2 | CCount, SACount |
如您所见,我使用了 STUFF,但不确定这是否是正确的方法。我需要产品组合以文字格式显示计数和扩展的产品组合。 随意提出您需要更多输入的问题。提前谢谢你。
【问题讨论】:
-
您的链接已损坏。
-
让我检查一下,试试这个dbfiddle.uk/…
-
worded format == CCount, CHKCount, SACount,如果可能的话,我更喜欢 CCCount + CHKCount + SACount。
-
不要为您的尝试添加指向小提琴的链接,将它们(实际代码)放在问题中。
-
好的,让我编辑一下
标签: sql sql-server sql-server-2016