查询同年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.日期