繁体   English   中英

查询以检查记录是否存在于两列或两列中

[英]query to check if records exists in both or either of 2 columns

我有一张表,我需要比较 2 列。 请参见下面的示例:我需要查询我应该将第 1 列和第 2 列分组并告诉 ABC = XYZ = 123,按日期分组并获得数量总和。

我尝试查询我使用比较(column1 = column2 或column2 = column1)并使用按日期分组。 但是我没有得到预期的结果。

任何帮助,将不胜感激。

在此处输入图像描述

编辑:添加示例数据和预期结果。 我期待第 1 行和第 2 行相同的答案,因为第 2 列匹配的数据在第 1 列中找到。

在此处输入图像描述

我尝试为您的预期结果创建 select ,但是将为忽略行设置一些已更改的语句:

SELECT col1, col2, done_at, SUM(qty) FROM (
    SELECT col1, col2, done_at, qty, 0 AS semiline
        FROM test WHERE 1

UNION ALL

    SELECT test1.col2 AS col1, test1.col1 AS col2, test1.done_at, test1.qty, 1 AS semiline
        FROM test AS test1
        JOIN test AS test2 ON test1.col2=test2.col1
        WHERE 1 GROUP BY test1.col2, test1.col1, test1.done_at

) AS result WHERE 1
GROUP BY col1, done_at;

+------+------+------------+----------+
| col1 | col2 | done_at    | SUM(qty) |
+------+------+------------+----------+
| ABC  | XYZ  | 2017-12-29 |        2 | <-- this row is bad, i think...
| XYZ  | 123  | 2017-12-29 |        3 |
| XYZ  | 123  | 2018-10-04 |        7 |
+------+------+------------+----------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM