【发布时间】:2014-07-09 19:17:41
【问题描述】:
我在 Crystal“命令”中使用下面的 sql 代码来显示当前年份的销售单位和美元(所有关闭的销售额与使用折扣关闭的销售额)。我需要添加过去几年的单位销售数量。有谁知道这样做的嵌套方式?感谢任何有想法的人。
代码:
SELECT
convert(char(4),datepart(yy,m.close_dt)) +
right('00' + convert(varchar,datepart(m,m.close_dt)),2) AS SortMonth,
replace(right(convert(varchar(11), m.close_dt, 106), 8), ' ', '-') AS DisplayMonth,
sum(case when lt.um_ch177= 'BAWRM' then 1 else 0 end) as Close_Units_Disc ,
sum(case when lt.um_ch177= 'BAWRM' then m.tot_ln_amt else 0 end) as Close_Dollars_Disc,
sum(case when m.close_dt >= '{?Date1}'
and m.close_dt <= '{?Date2}' then 1 else 0 end) as Close_Units_All,
sum(case when m.close_dt >= '{?Date1}'
and m.close_dt <= '{?Date2}' then tot_ln_amt else 0 end) as Close_Dollars_All
FROM
pro2sql.lt_master m WITH (NOLOCK)
LEFT OUTER JOIN pro2sql.ltuch_master lt WITH (NOLOCK) ON m.lt_acnt=lt.lt_acnt
WHERE
m.stage = 60
and m.loan_purpose <> 7
and m.app_number <> 0
and m.brch_entry {?BranchList}
and m.close_dt >= '{?Date1}'
and m.close_dt <'{?Date2}'
Group by
convert(char(4),datepart(yy,m.close_dt)) + right('00' + convert(varchar,datepart(m,m.close_dt)),2)
,replace(right(convert(varchar(11), m.close_dt, 106), 8), ' ', '-')
我无法上传图片 - 不确定这是否会变得混乱,但这是输出 - 最后两列是我需要添加的:
DisplayMonth Close_Units_Disc Close_Dollars_Disc Close_Units_All Close_Dollars_All %Units %Dollars DisplayMonth LY CloseUnits All
Feb-2014 115 $48,919,800 190 $83,942,650 61% 58% Feb-2013
Mar-2014 202 $91,077,780 238 $109,300,903 85% 83% Mar-2013
Apr-2014 219 $89,157,481 238 $95,892,509 92% 93% Apr-2013
【问题讨论】:
-
{?Date1} 或 {?Date1} 是否始终为当前年份日期?你的数据库是什么?
-
我们的财政年度是 11 月 1 日 - 10 月 31 日 - 所以日期 1 = 2013 年 1 月 1 日,日期 2 实际上是每个月的最后一天,因为它是月度报告。数据正在从我们的企业系统中提取。谢谢。
标签: sql crystal-reports command multiple-columns