Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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
Java SQLite组和按工作班次排序_Java_Sql_Sqlite_Date_Datetime - Fatal编程技术网

Java SQLite组和按工作班次排序

Java SQLite组和按工作班次排序,java,sql,sqlite,date,datetime,Java,Sql,Sqlite,Date,Datetime,我有一个查询需要执行一个基于 日期/时间和班次 班次为早上6:00至下午4:30 下午6:00至凌晨4:30 我使用的查询引擎是SQLite 我在以下SQL查询中遇到问题。下面您将看到查询 和当前结果,然后是期望的结果。 当前结果未按日期/时间/班次正确排序 导致“总数量”列也显示不正确的数据 有没有人曾经遇到过这个问题,并且可能 把我推向正确的方向。我愿意听取建议 即使我必须在没有查询的情况下对数据进行排序,最好使用 爪哇 选择日期、数量、班次、, 选择总和b.qty 从表1中选择b 哪里 b

我有一个查询需要执行一个基于 日期/时间和班次

班次为早上6:00至下午4:30 下午6:00至凌晨4:30

我使用的查询引擎是SQLite

我在以下SQL查询中遇到问题。下面您将看到查询 和当前结果,然后是期望的结果。 当前结果未按日期/时间/班次正确排序 导致“总数量”列也显示不正确的数据

有没有人曾经遇到过这个问题,并且可能 把我推向正确的方向。我愿意听取建议 即使我必须在没有查询的情况下对数据进行排序,最好使用 爪哇

选择日期、数量、班次、, 选择总和b.qty 从表1中选择b 哪里
b、 我想你可以做你想做的事,从时间中减去5个小时,并以此作为比较的日期。这样,上午4点将与前一天的晚上11点在同一天。我认为以下内容在SQLite中实现了这一点:

SELECT tdate, qty, shift,
       (SELECT sum( b.qty )
        FROM table1 AS b
        WHERE b.id <= a.id AND b.shift = a.shift and
              date(b.tdate, '-5 Hours') = date(a.tdate, '-5 Hours')
       ) 
       AS bo_total
FROM table1 AS a
ORDER BY date(a.tdate ) ASC, a.shift ASC;

此查询首先计算班次开始的日期,这使得班次比较更容易:

用AS 选择ID, 数量, tdate, 转移 案例 当timetdate介于“05:30”和“17:00”之间时 然后日期日期| | |“第一” 当timetdate>='17:30'时,则datetdate | |秒'
当timetdate更近但结果仍然关闭时。我将很快发布此修改查询的结果。不,不起作用。谢谢您的帮助。如果有什么我可以做的,比如提供更多的样本数据,我可以提供。@user3701137。你可以在SQL Fiddle上举一个例子。我不知道如何共享Fiddle,但我编辑了一篇文章,公开了一个示例模式。这是有效的,甚至正确地将一个错误的日期分组,我注意到我插入了该日期,并将其归类为第二班。但是,我现在需要将我的JDBCSQLite驱动程序升级到3.8.3。我使用的是3.7,查询给出了一个错误。有没有不使用WITH语句的方法?我试图在没有with CTE语句的情况下创建一个视图,结果出现了更多语法错误。。。;非常感谢。我只需要稍微修改一下,在底部创建第二个视图,然后我所要做的就是从c中选择*