查询同年1-12月的数据

查询同年1-12月的数据   

查询同年1-12月的数据

数据源 以上为数据源。以及查询结果

SELECT
    c.部门 AS 部门,
    c.日期 AS 对比年月,
    c.工资 AS 本期工资,
    c.营收 AS 本期营收,
    d.工资 AS 一月工资,--1月预算
    d.营收 AS 一月营收,--1月实际
    e.工资 AS 二月工资,--2月预算
    e.营收 AS 二月营收, --2月实际
    f.工资 AS 三月工资,--3月预算
    f.营收 AS 三月营收, --3月实际
    g.工资 AS 四月工资,--4月预算
    g.营收 AS 四月营收, --4月实际
    h.工资 AS 五月工资,--5月预算
    h.营收 AS 五月营收, --5月实际
    i.工资 AS 六月工资,--6月预算
    i.营收 AS 六月营收, --6月实际
    j.工资 AS 七月工资,--7月预算
    j.营收 AS 七月营收, --7月实际
    k.工资 AS 八月工资,--8月预算
    k.营收 AS 八月营收, --8月实际
    l.工资 AS 九月工资,--9月预算
    l.营收 AS 九月营收, --9月实际
    m.工资 AS 十月工资,--10月预算
    m.营收 AS 十月营收, --10月实际
    n.工资 AS 十一月工资,--11月预算
    n.营收 AS 十一月营收, --11月实际
    o.工资 AS 十二月工资,--12月预算
    o.营收 AS 十二月营收 --12月实际
FROM
    工资科目分析总_本地 c --同年9月
    LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收
    FROM
        工资科目分析总_本地 a
        --strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
          --sqlserver写法= year(a.日期)=year(b.日期) and month(a.日期)=1 这里的意思是a和b的年相等,然后1月

sqllite的月份要加引号。                           
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='01'
        AND a.部门 = b.部门 
    ) d 
    ON c.日期 = d.对比日期 
    AND c.部门 = d.部门
LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='02'
        AND a.部门 = b.部门 
    ) e 
    ON c.日期 = e.对比日期 
    AND c.部门 = e.部门 
LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='03'
        AND a.部门 = b.部门 
    ) f
    ON c.日期 = f.对比日期 
    AND c.部门 = f.部门 


    LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='04'
        AND a.部门 = b.部门 
    ) g
    ON c.日期 = g.对比日期 
    AND c.部门 = g.部门 


        LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='05'
        AND a.部门 = b.部门 
    ) h
    ON c.日期 = h.对比日期 
    AND c.部门 = h.部门 


    
        LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='06'
        AND a.部门 = b.部门 
    ) i
    ON c.日期 = i.对比日期 
    AND c.部门 = i.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='07'
        AND a.部门 = b.部门 
    ) j
    ON c.日期 = j.对比日期 
    AND c.部门 = j.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='08'
        AND a.部门 = b.部门 
    ) k
    ON c.日期 = k.对比日期 
    AND c.部门 = k.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='09'
        AND a.部门 = b.部门 
    ) l
    ON c.日期 = l.对比日期 
    AND c.部门 = l.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='10'
        AND a.部门 = b.部门 
    ) m
    ON c.日期 = m.对比日期 
    AND c.部门 = m.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='11'
        AND a.部门 = b.部门 
    ) n
    ON c.日期 = n.对比日期 
    AND c.部门 = n.部门 

            LEFT JOIN (
    SELECT
        a.日期 AS 日期,
        b.日期 as 对比日期,
        a.部门 AS 部门,
        a.工资 AS 工资,
        a.营收 AS 营收 
    FROM
        工资科目分析总_本地 a
        ----strftime('%Y-%m-%d',a.SalesDate)=strftime('%Y-%m-%d',b.SalesDate,'-1 year') 
        JOIN 工资科目分析总_本地 b ON  strftime('%Y',a.日期)= strftime('%Y',b.日期) and  strftime('%m',a.日期)='12'
        AND a.部门 = b.部门 
    ) o
    ON c.日期 = o.对比日期 
    AND c.部门 = o.部门 
    order by c.日期