按年月统计的SQL语句的写法.BCB下面的可打印DecisionGrid的控件的下载地址.(100分)

  • 主题发起人 浪边人
  • 开始时间

浪边人

Unregistered / Unconfirmed
GUEST, unregistred user!
第一个问题:(50分)
客户编号 年份 月份 定额用量 购买次数 购买量
1230000006 1999 12 450 1 25
1230000007 2000 1 450 1 35
1230000008 2002 1 100 1 35
2340000235 2001 12 340 6 77
2340000247 2001 12 45 14 4572
2340000248 2001 12 340 41 378

统计某年某月至某年某月之间.购买量低于定额用量的%30或高于定额用量的%30的客户.
必须用一个SQL语句来完成.
难点:此表中的时间范围在where中怎样表示?

第二个问题:(50分)
BCB下面的可打印DecisionGrid的控件.哪位能提供下载地址?
要求是无使用限制和时间限制的.
 
首先提个建议:将年度、月份合并为一个字段年月,用CHAR类型比较合适。
问题1:
select 客户编号,客户名称,(购买量/定额用量) as 百分比
from 销售表 a,客户表 b
where a.客户编号=b.客户编号
and (年月>='1999-01') and (年月<='2001-11')
and (购买量/定额用量>0.3) or (购买量/定额用量<0.3)
 
时间部分可写成:(以SQLServer为例,设年份,月份为char,如不是可转换为char)
。。。。
WHERE convert(datetime,年份+月份+'01') >= convert(datetime,起年+起月+'01') AND
convert(datetime,年份+月份+'01') <= convert(datetime,止年+止月+'01')
。。。。
 
To 荷塘新月:
我不想修改库结构.
To breeze:
方法可行.表中的年份.月份是从销售记录表中用year(销售日期),month(销售日期)获取的.
这样取得的月份会出现一位的情况.不便用convert转换成日期型.后改为
substring(Convert(varchar(7),time_pay,121),1,4) AS 年份,
substring(Convert(varchar(7),time_pay,121),6,2) AS 月份
再用convert(datetime,年份+月份+'01'). OK!
多谢两位!注意收分.

另:我的第二个问题不知哪位能帮助解决?
 
共有两个问题,解决了一个问题,得分怎么分?怎么没有阶段性给分呢?
还有50分求BCB下面的可打印DecisionGrid的控件或者下载地址
To 荷塘新月.breeze:
想给你们分,但只能结束问题才行,那我还有的50分咋办?还有的问题咋办??
在给分方式上大富翁是否应改进一下?
 
关注问题2
 
多人接受了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
728
import
I
I
回复
0
查看
641
import
I
I
回复
0
查看
645
import
I
顶部