1

我正在尝试根据我在 dbForge Studio 中构建的查询显示图表,但它的图表不正确,因为我认为它只选择了 1 个数据轴。

查询显示结果如下:

column1  column2  column3
data      data     data

我想要正确显示图表,我需要这样的格式:

Type      Total
column1    data
column2    data
column3    data

这是下面的查询。如何像这样添加虚拟列并重新排列?

    SELECT 
      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'To_Do' ) AS 'Column1' ,

      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'Completed' ) AS 'Column2' ,

      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 ) AS 'Column3'
4

2 回答 2

1

首先,如果您需要一个 2 列、N 行的数据集,您的查询应该在“SELECT”之后有两个参数。如果您需要将向上 SQLS 的结果放入图表中,您应该使用 UNION 或 UNION ALL(阅读http://dev.mysql.com/doc/refman/5.0/en/union.html了解更多信息),例如这个:

(SELECT 'Type', 'Total' FROM DUAL)
UNION [ALL]
(SELECT 'column1', COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'To_Do' )
UNION [ALL]
(SELECT 'column2', COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'Completed' )
UNION [ALL]
(SELECT 'column3', COUNT(T1.APP_UID)
       FROM TABLE1 T1 )

但据我所知,您可以使用以下内容获得类似的结果(具有两种状态之一的应用程序计数(“已完成,to_do”),以及所有应用程序的总和。下面的代码假设只有一个条目对于表中的每个应用程序状态):

(SELECT T1.APP_STATUS, COUNT(*) FROM TABLE1 T1 WHERE (T1.APP_STATUS = 'To_Do' OR T1.APP_STATUS = 'Completed') GROUP BY T1.APP_STATUS)
UNION ALL
(SELECT 'Altogether', COUNT(T1.APP_UID)
       FROM TABLE1 T1)
于 2013-09-04T22:48:41.323 回答
0
SELECT SUM(T1.APP_STATUS = 'To_Do') FROM T1
UNION SELECT SUM(T1.APP_STATUS = 'Completed') FROM T1
UNION SELECT COUNT(*) FROM T1
于 2013-09-04T22:45:10.757 回答