1.有一合同表和合同变更表 结构如下
合同表:
contract_id(合同主键:随机产生) contract_amount(合同金额) contract_state(合同状态) contract_com(所属单位)
1001 10.50 6 1
1002 5.50 6 2
合同变更表
change_id(变更主键) contract_id(合同外键) change_amount(变更后金额) change_time(变更时间) change_state(状态)
1 1001 10 2009-10-05 2
2 1001 11 2009-11-05 6
3 1002 6 2009-11-05 2
4 1002 7 2009-10-10 6
5 1002 7.5 2009-11-05 6
6 1001 11.5 2009-11-15 6说明:
两表的状态为审核状态(状态6为审核通过),在合同的金额发生变化时,首先根据当前时间的年月查询出变更表中是否存在与该合同匹配的变更记录,也就是一个合同在变更表中在某一月只能存在一条变更记录,若查询无,就插入一条变更记录,若查询有就更新当前记录
要求如下:
查询条件:2009-10-01至2009-12-01 根据所属单位分组,统计出该单位下的被审核通过的合同总数和合同总金额(对应的变更金额且变更记录必须是该时间段最后一次变更记录).2 有一个企业信息表和企业认证信息表 表结构如下:
企业信息表 企业认证信息表
com_id(企业主键,随机生成) com_name(企业名称) com_id(企业外键) cmm(int) cmmi(int) other(varchar)
1001 企业1 1001 -1 2 1,2,3
要求:
统计出企业信息及对应认证信息的认证个数
当cmm的值>0时认证个数加1,cmmi同理;other的值根据","分割 取出分割后的总数并 认证个数=认证个数+总数有高手帮忙提示下,万分感谢!!!
合同表:
contract_id(合同主键:随机产生) contract_amount(合同金额) contract_state(合同状态) contract_com(所属单位)
1001 10.50 6 1
1002 5.50 6 2
合同变更表
change_id(变更主键) contract_id(合同外键) change_amount(变更后金额) change_time(变更时间) change_state(状态)
1 1001 10 2009-10-05 2
2 1001 11 2009-11-05 6
3 1002 6 2009-11-05 2
4 1002 7 2009-10-10 6
5 1002 7.5 2009-11-05 6
6 1001 11.5 2009-11-15 6说明:
两表的状态为审核状态(状态6为审核通过),在合同的金额发生变化时,首先根据当前时间的年月查询出变更表中是否存在与该合同匹配的变更记录,也就是一个合同在变更表中在某一月只能存在一条变更记录,若查询无,就插入一条变更记录,若查询有就更新当前记录
要求如下:
查询条件:2009-10-01至2009-12-01 根据所属单位分组,统计出该单位下的被审核通过的合同总数和合同总金额(对应的变更金额且变更记录必须是该时间段最后一次变更记录).2 有一个企业信息表和企业认证信息表 表结构如下:
企业信息表 企业认证信息表
com_id(企业主键,随机生成) com_name(企业名称) com_id(企业外键) cmm(int) cmmi(int) other(varchar)
1001 企业1 1001 -1 2 1,2,3
要求:
统计出企业信息及对应认证信息的认证个数
当cmm的值>0时认证个数加1,cmmi同理;other的值根据","分割 取出分割后的总数并 认证个数=认证个数+总数有高手帮忙提示下,万分感谢!!!
解决方案 »
- 新版Mysql安装失败,怎么安装搞这么麻烦了?要啥.netframework...
- mysql建立的视图和储存过程放在哪里了?
- mysql里show processlist里的一个表查询status显示为locked 访问设计这个表的网页就出现问题
- [菜鸟问题:]一个新手对存储过程和视图的疑惑
- 我用FREETDS无法连接WINDOSW下的SQL2K
- 在mysqlFront 中用什么语句能查看到创建表A的SQL语句?
- 急问简单问题:MySQL如何实现左连接?谢谢
- mysql 中默认值的问题?
- mysql备份文件达50M,用phpmyadmin导入出错,请高人指点
- mysql 主从 字段大小
- mysql2005 如何备份 以及 恢复
- 在 Mysql 语句中使用 concat 的问题
找出“合同变更表”中按这个日期范围内的每个单位的最后那条更改记录然后与“合同表”进行左联接就可以了 统计出企业信息及对应认证信息的认证个数
当cmm的值>0时认证个数加1,cmmi同理;other的值根据","分割 取出分割后的总数并 认证个数=认证个数+总数
---------------------------------
“当cmm的值>0时认证个数加1,cmmi同理”这个用case来判断处理+1或+0就可以了;other的值要自己写个函数来根据分割符取值累加就可以了。
1. 合同表
CREATE TABLE `contract` (
`contract_id` varchar(20) NOT NULL,
`id` varchar(20) default NULL,
`companyname` varchar(50) default NULL,
`contracting_name` varchar(50) default NULL,
`contracting_englishname` varchar(50) default NULL,
`contracting_regplace` int(4) default NULL,
`contracting_istran` int(4) default NULL,
`contracting_real_name` varchar(50) default NULL,
`contracting_real_englishname` varchar(50) default NULL,
`contracting_real_regPlace` int(4) default NULL,
`contracting_real_istran` int(4) default NULL,
`contract_name` varchar(50) default NULL,
`contract_englishname` varchar(50) default NULL,
`contract_number` varchar(20) default NULL,
`profession_type` int(4) default NULL,
`signa_time` datetime default NULL,
`contract_period` int(4) default NULL,
`contract_content` varchar(500) default NULL,
`itotype` varchar(20) default NULL,
`bpotype` varchar(20) default NULL,
`softtype` varchar(20) default NULL,
`kpotype` varchar(20) default NULL,
`other_service` varchar(200) default NULL,
`contract_amount` varchar(20) default NULL,
`contract_amount_dollar` varchar(20) default NULL,
`contract_writer` varchar(20) default NULL,
`isonshore` int(4) default NULL,
`state` int(4) default NULL,
`fillin_time` datetime default NULL,
PRIMARY KEY (`contract_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;合同变更表
CREATE TABLE `contract_change` (
`id` int(11) NOT NULL auto_increment,
`contract_id` varchar(20) default NULL,
`change_berfroe` varchar(20) default NULL,
`change_after` varchar(20) default NULL,
`change_cause` varchar(500) default NULL,
`change_time` datetime default NULL,
`change_state` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=432 DEFAULT CHARSET=utf8;
CREATE TABLE `company_certificate` (
`id` varchar(20) NOT NULL default '',
`cmm` int(4) default NULL,
`certime_cmm` datetime default NULL,
`cmmi` int(4) default NULL,
`certime_cmmi` datetime default NULL,
`othercer` varchar(10) default NULL,
`othercer_str` varchar(10) default NULL,
`certime_other` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;