sql:合并结果

7gcisfzg  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(254)

我是一个相对初学者在sql(学习和遗忘了很多次)和完全自学,所以请原谅我可能缺乏适当的术语。我做了一个查询,提取已返回的项目,每个项目的行都有一个返回代码。下面是一个结果示例:

在最终报告(用visualstudio创建)中,我希望能够按返回类型计算返回数,但我需要将大约40个返回代码合并到4或5个返回类型组中。所以ret d u代码值)和。都是产品质量问题,将计入“产品质量”行。
我需要一些帮助来实现这一目标。
谢谢您
安德鲁

ix0qys7i

ix0qys7i1#

坏方法!
您可以通过在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

这种方法的问题是,每当你想做类似的事情时,你必须不断地重复。
更好的选择(但不是完美的!)
假设你还没有这样一张table。。。
创建包含分组的表。你以后需要做这种事的时候可以用这个。
例如。

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

希望这有帮助。。。

9cbw7uwe

9cbw7uwe2#

您正在查找GROUPBY子句。

相关问题