【问题标题】:Matching Two Tables Document types匹配两个表格文档类型
【发布时间】:2014-09-11 16:12:27
【问题描述】:

我有两张桌子。

FD_Documents
FICA11

在 FD_Documents 中有两列 FD_CBAF8917 = 文档类型和 FD_B61DDE99 = ID_Number

***sample data***
2456525425625,other
2456525425625,id
2456525425625,POA
2456522456585,other
2456522456585,id
1245879566554,poa
1245879566554,ID

在 FICA11 中

在 FICA11 中有两列 DOC_TYPE = 文档类型和 ID_NUMBER = ID_Number

***sample data***
2456525425625,other
2456525425625,id
2456525425625,POA
2456522456585,other
2456522456585,id
1245879566554,poa
1245879566554,ID

现在我需要将 ID 号与 ID 号匹配,并带回在文档类型上具有黄金匹配的记录(黄金匹配的意思,具有所有三种唯一的文档类型,其他 id,poa?

这可能吗?

谢谢

SELECT top 10 
   FD_Documents.FD_B61DDE99, 
   count(DISTINCT FD_Documents.FD_CBAF8917) as type_matches
FROM 
   FD_Documents INNER JOIN 
   FICA11 ON FD_Documents.FD_B61DDE99 = FICA11.ID_NUMBER 
          AND FD_Documents.FD_CBAF8917 = FICA11.DOC_TYPE
GROUP BY FD_Documents.FD_B61DDE99
ORDER BY count(DISTINCT FD_Documents.FD_CBAF8917) desc


    SELECT  FD_Documents.FD_B61DDE99,FD_Documents.FD_CBAF8917, FICA11.DOC_TYPE
    FROM    FD_Documents INNER JOIN
            FICA11 ON FD_Documents.FD_B61DDE99 = FICA11.ID_NUMBER

【问题讨论】:

  • 考虑通过 sqlfiddle.com 添加示例数据

标签: sql sql-server sql-server-2008 sqlite


【解决方案1】:

这将为您提供所有具有黄金匹配的 id:

SELECT d.id 
FROM 
  FD_Documents d INNER JOIN  
  FICA11 f ON d.id = f.id AND d.type = f.type
GROUP BY d.id
HAVING COUNT(distinct d.types) = 3

要查看每个 ID 的输出,试试这个:

SELECT TOP 10 d.id, COUNT(distinct d.types) as type_matches
FROM 
  FD_Documents d INNER JOIN  
  FICA11 f ON d.id = f.id AND d.type = f.type
GROUP BY d.id
ORDER BY COUNT(distinct d.types) DESC

【讨论】:

  • 嗨@Bulat-错误级别15,状态1,第3行,关键字'BY附近的语法不正确
  • 它运行成功,但没有给出任何结果,但我知道有黄金匹配,但计算它们会花费我很长时间,我什至将 3 更改为 2 也没有结果。
  • COUNT(distinct d.types)having 移动到 select 并获取最上面的行,看看你得到了什么。
  • 对于两个表的 ID 或 ID 和类型的简单 INNER JOIN 有什么好处
  • 如果你同时加入 ID 和 Type 像这样:INNER JOIN FICA11 f ON d.id = f.id AND d.type = f.type ??
猜你喜欢
  • 2019-02-08
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
相关资源
最近更新 更多