基于多个条件计算SQLite中两个Date之间的差异

Calculation of the difference between two Dates in SQLite based on multiple conditions

SQLite 中计算两个日期之间的差异时请考虑以下问题:

我有一个 table,其中包含以下信息,其中我有 2 个不同的案例。此 table 中的每个项目代表 2 种可能情况中的一种。

 Project name | date       | date1              | StageDuration* (header row) 

 Project1     | 2018-12-01 |-(no date or NULL)  |16

 Project2     | 2018-12-14 | 2018-12-06         |3

 Project2     | 2018-11-30 | 2018-12-06         |3

对于项目 2(第二种情况),可能有 2 行,因为给定的 table 是左连接的结果。项目名称和日期列来自 table1,项目名称、日期 1、StageDuration 列来自 table 2。如果我在 table1 和 1 行中有超过 1 行在 table 2 中,我在连接 table 中得到 2 行(如本例所示)。

目前我使用以下 SQLite 代码获取 case1/project1 的持续时间:

select *,
case when `date` IS NULL then `StageDuration` else '' end 
as "Duration"
from report

它适用于项目 1。我要解决的问题是调整代码并获取其中也包含的第二种情况(project2)的条件。

我期望的条件是

if count(dates from report 1/date)>count(dates from report 2/date1) 

差异应该是(我需要的持续时间)计算为

today - max(JULIANDAY(`date`)) 

非常感谢您的帮助。这是我的第二个问题。提前感谢您的时间和理解。

从子查询中获取最大日期并将其加入项目名称,然后使用该日期计算持续时间

SELECT t1.*, proj_date1, stage_duration,
  CASE WHEN proj_date IS NULL then stage_duration 
  ELSE julianday(date('now')) - julianday(max_date)
  END as "Duration" 
FROM table1 t1
JOIN table2 t2 ON t1.proj_name = t2.proj_name
JOIN (SELECT proj_name, MAX(proj_date) as max_date 
      FROM table1 
      GROUP BY proj_name) AS s ON t1.proj_name = s.proj_name

我使用了自己的 table/column 名字,但我希望查询是有意义的