我是SQL方面的一个相对初学者(多次学习和遗忘),完全是自学的,所以请原谅我可能缺乏恰当的术语。我进行了一个查询,该查询提取已返回的项,每个项的行都有一个返回代码。下面是一个结果示例:
在最后报告(用Visual创建)中,我希望能够按返回类型计算返回值,但需要将大约40个返回代码合并为4或5个返回类型组。所以RET_CODE值)和。都是产品质量问题,并将在“产品质量”行中计算。
我需要一些帮助来解决这个问题。
谢谢
安德鲁
发布于 2020-05-19 16:41:46
的坏方法!
可以通过使用以下内容在SQL语句中创建分组来做到这一点
SELECT
*,
CASE
WHEN RET_CODE IN ('.', ')') THEN 'Quality Error'
WHEN RET_CODE IN ('X', 'Y', 'Z') THEN 'Some Other error'
ELSE [Desc1]
END AS GroupDescription
FROM myTable
这种方法的问题在于,每次您想要类似的东西时,都必须不断地重复它。
更好的选择。(但不是完美的!)
假设你还没有这样的桌子..。
创建一个包含分组的表。将来,当你需要做这样的事情时,你可以使用它。
例如。
CREATE TABLE dbo.MyErrorGroupTable (RET_CODE varchar(10), GroupDescription varchar(50))
INSERT INTO dbo.MyErrorGroupTable VALUES
('.', 'Quality Error'),
(')', 'Quality Error'),
('X', 'Some Other Error'),
('Y', 'Some Other Error'),
('.', 'Some Other Error'),
('P', 'UPS Error'),
('A', 'PAck/Pick Error')
等等..。
然后,您可以简单地连接到这个表并在报表中使用GroupDescription
。
例如:
SELECT
a.*, b.GroupDescription
FROM myTable a
JOIN MyErrorGroupTable b ON a.RET_CODE = b.RET_CODE
希望这能帮上忙。
发布于 2020-05-19 14:15:08
你要找的是按条款分组的人。
https://stackoverflow.com/questions/61893045
复制相似问题