老师您好 不是很明白
我现在用left join组合的
SQL如下:
SELECT
当前.年月 AS 当前年月,
当前.数量合计 AS 当前数量合计,
当前.价税合计 AS 当前价税合计,
上一年.年月 AS 上一年年月,
上一年.数量合计 AS 上一年数量合计,
上一年.价税合计 AS 上一年价税合计,
下一年.年月 AS 下一年年月,
下一年.数量合计 AS 下一年数量合计,
下一年.价税合计 AS 下一年价税合计
FROM
(
SELECT 年月, SUM(数量) AS 数量合计, SUM(本币价税合计) AS 价税合计
FROM OA_ShiplistTrlAll
WHERE 单据日期 >= @p开始日期 AND 单据日期 <=@p结束日期
and ('全选' in (@p存货名称) or 存货名称 in (@p存货名称)) and ('全选' in (@p客户名称) or 客户名称 in (@p客户名称))
GROUP BY 年月
) AS 当前
LEFT JOIN
(
SELECT
年月,
SUM(数量) AS 数量合计,
SUM(本币价税合计) AS 价税合计,
CAST(SUBSTRING(年月, 1, 4) AS INT) + 1 AS 加一年后的年份,
SUBSTRING(年月, 6, 2) AS 月份
FROM OA_ShiplistTrlAll
WHERE 单据日期 >= DateAdd(year,-1,@p开始日期) AND 单据日期 <=DateAdd(year,-1,@p结束日期)
and ('全选' in (@p存货名称) or 存货名称 in (@p存货名称)) and ('全选' in (@p客户名称) or 客户名称 in (@p客户名称))
GROUP BY 年月
) AS 上一年
ON 当前.年月 = CAST(上一年.加一年后的年份 AS VARCHAR(4)) + '-' + 上一年.月份
LEFT JOIN
(
SELECT
年月,
SUM(数量) AS 数量合计,
SUM(本币价税合计) AS 价税合计,
CAST(SUBSTRING(年月, 1, 4) AS INT) - 1 AS 减一年后的年份,
SUBSTRING(年月, 6, 2) AS 月份
FROM OA_ShiplistTrlAll
WHERE 单据日期 >= DateAdd(year,1,@p开始日期) AND 单据日期 <= DateAdd(year,1,@p结束日期)
GROUP BY 年月
) AS 下一年
ON 当前.年月 = CAST(下一年.减一年后的年份 AS VARCHAR(4)) + '-' + 下一年.月份;
用这种形式出来的数据 能够让图标柱状图下方显示对应的各个年月,然后上方显示数量合计的文本吗
|