从mysql表中选择带有条件的重复值

优素福

我在mysql中有下表:

Key    DI     CI     FD      FA  NM  Valid_from   Valid_to
 0   1224468 123 2012-06-30  3   6   2013-01-23  9999-12-31
 1   1234567 123 2013-12-31  3   10  2014-02-27  2014-03-10
 2   1234567 123 2013-12-31  2   12  2014-03-10  9999-12-31
 3   1234579 123 2013-12-31  3   12  2014-05-15  9999-12-31
 4   1234595 123 2013-12-31  1   12  2014-06-30  9999-12-31
 5   122469  123 2015-11-11  1   6   2015-11-11  9999-12-31
 6   1224470 123 2015-11-11  2   12  2015-11-11  9999-12-31
 7   1224471 123 2015-11-11  3   15  2015-11-11  9999-12-31
 8   1224472 123 2015-11-10  2   13  2015-11-10  9999-12-31
 9   1224473 123 2015-11-10  3   12  2015-11-10  9999-12-31

如果存在具有相同“ FD”的记录,那么我需要获取“ FA”为“ 1”的记录(如果存在)。

基本上,我想要这个输出。

Key   DI     CI     FD      FA  NM  Valid_from   Valid_to
 0  1224468 123 2012-06-30  3   6   2013-01-23  9999-12-31
 4  1234595 123 2013-12-31  1   12  2014-06-30  9999-12-31
 5  122469  123 2015-11-11  1   6   2015-11-11  9999-12-31
 8  1224472 123 2015-11-10  2   13  2015-11-10  9999-12-31
 9  1224473 123 2015-11-10  3   12  2015-11-10  9999-12-31

我已经尝试了以下代码,但是给出了一个奇怪的输出:

代码:

SELECT T1.*
    FROM findoc T1 LEFT JOIN
     findoc T2
    ON DATE(T1.`Financial_date`) = DATE(T2.`Financial_date`) AND T2.`Fig_audit` <> 1
    WHERE  T2.`Fig_audit` IS NULL OR T1.`Fig_audit` = 1

输出:

Key   DI     CI     FD      FA  NM  Valid_from   Valid_to
 4  1234595 123 2013-12-31  1   12  2014-06-30  9999-12-31
 4  1234595 123 2013-12-31  1   12  2014-06-30  9999-12-31
 4  1234595 123 2013-12-31  1   12  2014-06-30  9999-12-31
 5  122469  123 2015-11-11  1   6   2015-11-11  9999-12-31
 5  122469  123 2015-11-11  1   6   2015-11-11  9999-12-31

它看起来是一个复杂的查询,我无法做到。

我该怎么做?

谢谢。

雷达

您可以case based aggregation找出是否存在日期相同且至少有一行的列值为FA1的行

select F.* from finddoc F
inner join 
(
select fd , sum( case when fa = 1 then 1 else 0 end) as faOneCount
from finddoc 
group by fd

) T
on (F.FD = T.FD and T.faOneCount = 1 AND F.FA =1)
or ( F.FD = T.FD and T.faOneCount =0 )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从带有条件联接的表中选择列

来自分类Dev

从带有条件的选择中选择SQL创建表

来自分类Dev

如何在Heidi SQL中从多个表中选择带有条件的*

来自分类Dev

有没有办法在带有条件的 INSERT INTO 子句中选择一个表?

来自分类Dev

选择带有条件的特定列值

来自分类Dev

选择带有条件的SQL以计算不同的值

来自分类Dev

在SQL中选择带有条件的单个XML节点

来自分类Dev

如何在R中选择带有条件的向量行?

来自分类Dev

LINQ有条件地从表中选择并返回多列作为单个列表

来自分类Dev

从两个有条件的表中选择两列

来自分类Dev

如何在Yii中从具有条件的表中选择两列的DISTINCT?

来自分类Dev

如何有条件地从不同表的两列中选择

来自分类Dev

有条件地在R中选择多个列

来自分类Dev

从有条件的映射表中选择不同的记录

来自分类Dev

有条件地从列决策中选择数据

来自分类Dev

MySQL项目设计-根据另一个选择查询中的行有条件地从一个表中选择

来自分类Dev

从带有条件的单个表中提取行值

来自分类Dev

从带有条件的单个表中提取行值

来自分类Dev

C#中带有条件单元格值的表

来自分类Dev

n选择带有条件的k实现

来自分类Dev

带有条件选择动作的剑道网格列

来自分类Dev

选择带有条件的LEFT OUTER JOIN

来自分类Dev

带有条件的粗糙嵌套选择器

来自分类Dev

n选择带有条件的k实现

来自分类Dev

选择带有条件的下拉菜单

来自分类Dev

从具有条件的表中选择 DISTINCT 并从另一个表中进行排序

来自分类Dev

显示具有条件值的重复 html 元素

来自分类Dev

R - 使用变量中的值有条件地从其他变量中选择多个值

来自分类Dev

MySQL从带有timestamp列的表中选择循环时间间隔中的所有条目

Related 相关文章

  1. 1

    从带有条件联接的表中选择列

  2. 2

    从带有条件的选择中选择SQL创建表

  3. 3

    如何在Heidi SQL中从多个表中选择带有条件的*

  4. 4

    有没有办法在带有条件的 INSERT INTO 子句中选择一个表?

  5. 5

    选择带有条件的特定列值

  6. 6

    选择带有条件的SQL以计算不同的值

  7. 7

    在SQL中选择带有条件的单个XML节点

  8. 8

    如何在R中选择带有条件的向量行?

  9. 9

    LINQ有条件地从表中选择并返回多列作为单个列表

  10. 10

    从两个有条件的表中选择两列

  11. 11

    如何在Yii中从具有条件的表中选择两列的DISTINCT?

  12. 12

    如何有条件地从不同表的两列中选择

  13. 13

    有条件地在R中选择多个列

  14. 14

    从有条件的映射表中选择不同的记录

  15. 15

    有条件地从列决策中选择数据

  16. 16

    MySQL项目设计-根据另一个选择查询中的行有条件地从一个表中选择

  17. 17

    从带有条件的单个表中提取行值

  18. 18

    从带有条件的单个表中提取行值

  19. 19

    C#中带有条件单元格值的表

  20. 20

    n选择带有条件的k实现

  21. 21

    带有条件选择动作的剑道网格列

  22. 22

    选择带有条件的LEFT OUTER JOIN

  23. 23

    带有条件的粗糙嵌套选择器

  24. 24

    n选择带有条件的k实现

  25. 25

    选择带有条件的下拉菜单

  26. 26

    从具有条件的表中选择 DISTINCT 并从另一个表中进行排序

  27. 27

    显示具有条件值的重复 html 元素

  28. 28

    R - 使用变量中的值有条件地从其他变量中选择多个值

  29. 29

    MySQL从带有timestamp列的表中选择循环时间间隔中的所有条目

热门标签

归档