Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 从同一列到另一列进行计数_Sqlite - Fatal编程技术网

Sqlite 从同一列到另一列进行计数

Sqlite 从同一列到另一列进行计数,sqlite,Sqlite,我试图从customers表中计算基于当前日期创建的今天、本月和上个月的customers,所以我尝试了这个方法 Select * FROM ( (Select count(c1.id) from customers c1 where c1.created = date('now', 'localtime')) d (Select count(id) from customers where created >= date('now','

我试图从customers表中计算基于当前日期创建的今天、本月和上个月的customers,所以我尝试了这个方法

Select * FROM
       (
         (Select count(c1.id) from customers c1 where c1.created = date('now', 'localtime')) d 
         (Select count(id) from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) m
         (Select count(id) from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime')) m
       ) lm

但是我可以看到他们做对了,我做错了什么?

Sqlite 3.7有很多奇怪的bug 1count*和countsinglefield在嵌套查询中返回不同的结果 2外部查询不是从表名而是从字段名中获取字段名,这可能是正确的,但在MSSAL中,我期望其他行为 你的错误呢 3您在选择a、b、c中遗漏了值之间的comas 4lm alias位于错误的位置

如果条件正确,您的查询当然是正确的

Select * FROM
       (
         (Select count(c1.id) d from customers c1 where c1.created = date('now', 'localtime')) ,
         (Select count(id) m from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) ,
         (Select count(id) lm from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime')) 
       )

Sqlite 3.7有许多奇怪的bug 1count*和countsinglefield在嵌套查询中返回不同的结果 2外部查询不是从表名而是从字段名中获取字段名,这可能是正确的,但在MSSAL中,我期望其他行为 你的错误呢 3您在选择a、b、c中遗漏了值之间的comas 4lm alias位于错误的位置

如果条件正确,您的查询当然是正确的

Select * FROM
       (
         (Select count(c1.id) d from customers c1 where c1.created = date('now', 'localtime')) ,
         (Select count(id) m from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) ,
         (Select count(id) lm from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime')) 
       )

以下是您的查询的工作版本:

SELECT d.n as 'Day', m.n as 'Month', lm.n as 'Last Month' FROM
(SELECT count(id) as `n` FROM `customers` 
 WHERE created >= date('now', 'localtime') 
 AND created <= date('now', 'localtime','+1 day')) d,
(SELECT count(id) as `n` FROM `customers`
 WHERE created >= date('now','start of month')
 AND created <= date('now','start of month','+1 month','-1 day')) m,
(SELECT count(id) as `n` FROM `customers`
 WHERE created >= date('now','start of month','-1 month')
 AND created <= date('now','start of month','-1 day')) lm;

以下是您的查询的工作版本:

SELECT d.n as 'Day', m.n as 'Month', lm.n as 'Last Month' FROM
(SELECT count(id) as `n` FROM `customers` 
 WHERE created >= date('now', 'localtime') 
 AND created <= date('now', 'localtime','+1 day')) d,
(SELECT count(id) as `n` FROM `customers`
 WHERE created >= date('now','start of month')
 AND created <= date('now','start of month','+1 month','-1 day')) m,
(SELECT count(id) as `n` FROM `customers`
 WHERE created >= date('now','start of month','-1 month')
 AND created <= date('now','start of month','-1 day')) lm;

您从查询中获得了什么?您从查询中获得了什么?从创建>=日期时间“现在”、“月初”和创建的客户中选择countid lm从创建>=日期时间“现在”、“月初”和创建的客户中选择countid lm