【问题标题】:Combine results of two SQL queries合并两个 SQL 查询的结果
【发布时间】:2016-10-27 08:40:10
【问题描述】:

我想将两个查询的结果合并为一个resulttable 三个列,result1、result2 和dateday,查询是矛盾的

SELECT COUNT( DISTINCT `cust` ) AS result1, DATE( `date` ) AS dateday
FROM `salg_test`
WHERE `saved` =0
AND `is_void` =0
GROUP BY dateday
ORDER BY dateday DESC

SELECT COUNT( DISTINCT `cust` ) AS result2, DATE( `date` ) AS dateday
FROM `salg_test`
WHERE `saved` =1
AND `is_void` =0
GROUP BY dateday
ORDER BY dateday DESC

我希望两个结果都按dateday 变量进行分组和排序。

【问题讨论】:

    标签: php sql select phpmyadmin union


    【解决方案1】:

    应该可以做这样的事情:

    SELECT COUNT( DISTINCT CASE `saved` when 0 then `cust` else null end ) AS result1
    , COUNT( DISTINCT CASE `saved` when 1 then `cust` else null end ) AS result2
    , DATE( `date` ) AS dateday
    FROM `salg_test`
    WHERE `is_void` =0
    GROUP BY dateday
    ORDER BY dateday DESC
    

    【讨论】:

    • 非常感谢!我使用 PHPmyadmin 它返回以下错误:064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的“AND is_void =0 GROUP BY dateday ORDER BY dateday DESC LIMIT 0, 30”附近使用正确的语法有什么提示吗?
    • 抱歉,删除了您的 where 条件,忘记更改 and,试试我的编辑。
    • 当然!我是个盲人,我自己应该看到的。非常感谢 Kateract,正是我所需要的 :)
    【解决方案2】:

    怎么样:

    WHERE (`saved`= 1 OR `saved`= 0)
    

    或者,如果 saved 的唯一可能值是 1 或 0,则从查询中完全省略该条件。

    【讨论】:

    • 感谢您的快速回答 Juan :) 我需要 saved= 1 的结果在一个列中,saved= 0 的结果在另一列中,你知道我该如何管理吗有 OR 条件?
    • 看起来 Kateract 可能有您想要的查询。祝你好运!
    • 谢谢!是的,Kateracts 的答案正是我所需要的 :)
    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多