AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 261007
Accepted
boog
boog
Asked: 2020-03-03 09:17:29 +0800 CST2020-03-03 09:17:29 +0800 CST 2020-03-03 09:17:29 +0800 CST

每个不同的值仅显示 1 行

  • 772

这似乎是我经常遇到的一个问题,但我还没有弄清楚(我不是 dba)。我正在为我正在创建的报告运行查询,但是用户不希望为相同的“案例编号”显示任何重复的行。

我已经尝试过“选择不同”和“分组依据”,但都没有显示我希望它们显示的结果。

问题是报告查询的列可以有 2 个不同的可能值,我们只想显示匹配其中任何一个值的案例,但我们不想显示特定案例超过 1 次。

这是查询:

SELECT cases.casenum, 
       sp_first_party(cases.casenum), 
       cases.matcode, 
       cases.open_status, 
       cases.date_opened, 
       cases.close_date 
FROM cases, 
     insurance 
WHERE (cases.casenum = insurance.case_num) 
  AND  cases.date_opened >= :start 
  AND cases.date_opened <= :end 
  AND (    insurance.policy_type = 'Liability' 
        OR insurance.policy_type = 'SUM') 
  AND insurance.date_settled is Null  
  AND (    cases.matcode like 'GPI' 
        OR cases.matcode like 'MVA' 
        OR cases.matcode like 'S&F') 
  AND cases.close_date is not NULL  

这就是我认为的问题区域:

(insurance.policy_type = 'Liability' OR insurance.policy_type = 'SUM')

一个“案例”/“案例编号”可以有多种保险单类型……这意味着它们可以有责任或总和,或两者兼而有之。报告的输出会为出现的这些保险类型中的任何一种的每个实例显示一个新行。

我们希望每个案例仅显示一行,无论为案例分配了多少/哪些保险单类型......但仍然只显示符合该标准的案例。

我试过选择不同的,以及按cases.casenum分组,我在这里做错了什么?

感谢您的阅读!

PS-这是针对 cms 平台/应用程序的,但它在 t-sql 上运行(与 mssql 语法相同)。

这是输出示例 - 正如您在最左侧的列中看到的那样,“案例编号”列有多个相同的值。这是因为符合条件的案例编号有多个不同的 insurance.policy_type。虽然我们仍然需要按这些策略类型进行过滤,但我们不希望为每个类型看到额外的行。

输出

sybase duplication
  • 1 1 个回答
  • 264 Views

1 个回答

  • Voted
  1. Best Answer
    Piotr Palka
    2020-03-03T10:31:54+08:002020-03-03T10:31:54+08:00

    您不必使用MIN,只需该ROW_NUMBER行即可让您为每个案例编号选择一行。

    如果没有数据模型,我无法测试以下查询:

    WITH Src AS 
    (
    SELECT cases.casenum, 
           sp_first_party(cases.casenum) as first_party, 
           cases.matcode, 
           cases.open_status, 
           cases.date_opened, 
           cases.close_date,
           ROW_NUMBER() OVER(PARTITION BY cases.casenum ORDER BY insurance.policy_type) as rank
    FROM cases, 
         insurance 
    WHERE (cases.casenum = insurance.case_num) 
      AND  cases.date_opened >= :start 
      AND cases.date_opened <= :end 
      AND (    insurance.policy_type = 'Liability' 
            OR insurance.policy_type = 'SUM') 
      AND insurance.date_settled is Null  
      AND (    cases.matcode like 'GPI' 
            OR cases.matcode like 'MVA' 
            OR cases.matcode like 'S&F') 
      AND cases.close_date is not NULL 
    )
    SELECT * FROM Src WHERE rank = 1
    
    • 0

相关问题

  • 固定值字段的外键约束

  • 为什么同时使用 TRUNCATE 和 DROP?

  • 已经连接时是否有与 isql 等效的 -w ?

  • 如何从 isql 将参数传递给“SQL 脚本”

  • 如何识别具有指向 Sybase 中特定表的外键的表?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve