运行代码报错,独立运行部分正常

zqqz111 2013-10-31 03:24:36
求助大大们,我的代码那里错了,如果不用临时的数据库转存储,直接运行一切正常。

select
ord_id, ord_no, ord_ext1, ord_title, ord_date, cu_depart, jb_creator, jb_type,jb_enddate, ord_depart,
min(rtrim(str(jb_id))+jb_context) as reason, ord_status,
/* 计算本业务单据【返回】和【被返回】合计数量,其中在计算【被返回】总数时会剔除【总经办审核步骤】的【被返回】数据,而【返回】计算全部数据 */
(select count(jb_id) from mps_job where jb_ordid=ord_id and jb_result1='{ed_fhzt}' and (('{ed_fhzt}' = case when jb_type not like '%总经办%' then '被返回' else '未知' end) or ('{ed_fhzt}' = case when jb_type not like '%未知%' then '返回' else '未知' end))) as retry,
/* 计算业务最后完成那步骤的时间 */
(select max(jb_enddate) from mps_job where jb_ordid=ord_id) as ord_date00,
/* 计算业务开始时间到最后步骤时间,中途所用的天数 */
(select datediff(dd,ord_date,max(jb_enddate)) from mps_job where jb_ordid=ord_id)+1 as auditdays
from
mps_job, mps_business, mps_crmworks, mps_compuser
where
jb_ordid=ord_id and
jb_wrkid=wrk_id and
jb_createcuid=cu_id and
jb_time>0.1 and
ord_crmid={ddp_type} and
('{ed_fqbm}'='' or ',{ed_fqbm},' like '%,'+ord_depart+',%') and
('{ed_ywbh}'='' or ord_no like '%{ed_ywbh}%') and
ord_no not like '%(临)%' and
('{ed_ywlx}'='' or ',{ed_ywlx},' like '%,'+ord_ext1+',%') and
('{ed_bhbm}'='' or ',{ed_bhbm},' like '%,'+cu_depart+',%') and
('{ed_bbhbm}'='' or ',{ed_bbhbm},' not like '%,'+cu_depart+',%') and
ord_date>='{ed_date1} 00:00:00' and
ord_date<='{ed_date2} 23:59:59' and
/* 完成业务评审的取得业务完成审核的时间。如果业务在评审中,那么就是评审最后一步所用的时间 */
(select max(jb_enddate) from mps_job where jb_ordid=ord_id)>='{ed_enddate1} 00:00:00' and
jb_result1='{ed_fhzt}' and
(('{ed_xmzt}' = case when ord_status='立项已完成' or ord_status='变更已完成' then '评审已通过'
else '未知' end) or
('{ed_xmzt}' = case when ord_status<>'立项已完成' and ord_status<>'变更已完成' then '评审未通过'
else '未知' end) or
('{ed_xmzt}' = case when ord_status<>'全部' then '全部'
else '未知' end))
group by
ord_type, ord_no, ord_ext1, ord_id, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate,
ord_status, ord_depart
having
count(jb_id)>0
order by
ord_type, ord_no


当我加入临时数据库转存储后,想在查询第二次的时候,就报错了。

create table #xmxtkh(kh_ord_id bigint, kh_ord_no varchar(50), kh_ord_ext1 nvarchar(100), kh_ord_title nvarchar(100),
kh_ord_date datetime, kh_ord_depart varchar(30), kh_jp_creator nvarchar(50), kh_jp_type nvarchar(50),
kh_jp_enddate datetime, kh_ord_depart varchar(30), kh_ord_status nvarchar(16), kh_reason nvarchar(500),
kh_count bigint, kh_ord_date00 datetime, kh_ayditdays bigint)

insert into #xmxtkh(kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_ord_depart, kh_jp_creator,
kh_jp_type, kh_jp_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_count, kh_ord_date00, kh_ayditdays)
select
ord_id, ord_no, ord_ext1, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate, ord_depart, ord_status,
min(rtrim(str(jb_id))+jb_context),
/* 计算本业务单据【返回】和【被返回】合计数量,其中在计算【被返回】总数时会剔除【总经办审核步骤】的【被返回】数据,而【返回】计算全部数据 */
(select count(jb_id) from mps_job where jb_ordid=ord_id and jb_result1='{ed_fhzt}' and (('{ed_fhzt}' = case when jb_type not like '%总经办%' then '被返回' else '未知' end) or ('{ed_fhzt}' = case when jb_type not like '%未知%' then '返回' else '未知' end))),
/* 计算业务最后完成那步骤的时间 */
(select max(jb_enddate) from mps_job where jb_ordid=ord_id),
/* 计算业务开始时间到最后步骤时间,中途所用的天数 */
(select datediff(dd,ord_date,max(jb_enddate)) from mps_job where jb_ordid=ord_id)+1
from
mps_job, mps_business, mps_crmworks, mps_compuser
where
jb_ordid=ord_id and
jb_wrkid=wrk_id and
jb_createcuid=cu_id and
jb_time>0.1 and
ord_crmid={ddp_type} and
('{ed_fqbm}'='' or ',{ed_fqbm},' like '%,'+ord_depart+',%') and
('{ed_ywbh}'='' or ord_no like '%{ed_ywbh}%') and
ord_no not like '%(临)%' and
('{ed_ywlx}'='' or ',{ed_ywlx},' like '%,'+ord_ext1+',%') and
('{ed_bhbm}'='' or ',{ed_bhbm},' like '%,'+cu_depart+',%') and
('{ed_bbhbm}'='' or ',{ed_bbhbm},' not like '%,'+cu_depart+',%') and
ord_date>='{ed_date1} 00:00:00' and
ord_date<='{ed_date2} 23:59:59' and
/* 完成业务评审的取得业务完成审核的时间。如果业务在评审中,那么就是评审最后一步所用的时间 */
(select max(jb_enddate) from mps_job where jb_ordid=ord_id)>='{ed_enddate1} 00:00:00' and
jb_result1='{ed_fhzt}' and
(('{ed_xmzt}' = case when ord_status='立项已完成' or ord_status='变更已完成' then '评审已通过'
else '未知' end) or
('{ed_xmzt}' = case when ord_status<>'立项已完成' and ord_status<>'变更已完成' then '评审未通过'
else '未知' end) or
('{ed_xmzt}' = case when ord_status<>'全部' then '全部'
else '未知' end))
group by
ord_type, ord_no, ord_ext1, ord_id, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate,
ord_status, ord_depart
having
count(jb_id)>0
order by
ord_no

select
kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_ord_depart, kh_jp_creator,
kh_jp_type, kh_jp_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_count, kh_ord_date00, kh_ayditdays
from
mps_job, #xmxtkh
where
jb_ordid=kh_ord_id and
jb_ordno=kh_ord_no and
jb_date=kh_jp_enddate and
order by
ord_no


大大们帮帮忙啊
...全文
362 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiejin90314 2013-11-01
  • 打赏
  • 举报
回复
这么长。。没兴趣看下去了
  • 打赏
  • 举报
回复
引用 20 楼 u012416193 的回复:
哈哈,感谢各位,都解决了,最后代码
select
 a.*, kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno, cu_depart
from
 #xmxtkh a, mps_job b, mps_compuser c
where
 jb_ordid=kh_ord_id and
 jb_createcuid=cu_id and
 convert(char(24),jb_date,120)=convert(char(24),kh_jb_enddate,120)
group by
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno, cu_depart
order by
 kh_ord_no
呵呵,解决了就好哈,看来还是数据类型的问题
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
哈哈,感谢各位,都解决了,最后代码
select
 a.*, kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno, cu_depart
from
 #xmxtkh a, mps_job b, mps_compuser c
where
 jb_ordid=kh_ord_id and
 jb_createcuid=cu_id and
 convert(char(24),jb_date,120)=convert(char(24),kh_jb_enddate,120)
group by
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno, cu_depart
order by
 kh_ord_no
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 18 楼 yupeigu 的回复:
哦,那看看,mps_job表的 jb_date和 kh_jb_enddate的数据类型是否都是 datetime类型呢
在定义 kh_jb_enddate的时候,上面写的类型就是datetime,不过系统好像不识别。 所以我上网查了下,发现必须要转换,所以我用了下面的代码,就解决了,
select
 a.*, kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno
from
 #xmxtkh a, mps_job b
where
 jb_ordid=kh_ord_id and
 convert(char(24),jb_date,120)=convert(char(24),kh_jb_enddate,120)
group by
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays, jb_ordid, jb_creator, jb_type, jb_ordno
order by
 kh_ord_no
但又出现另外的问题,我还想要多加入2张表mps_business和mps_compuser但系统就又识别不了这2张表了,不知道
这里是怎么写的,我这样的写运行不对
from
 #xmxtkh a, mps_job b,mps_business c, mps_compuser d
  • 打赏
  • 举报
回复
哦,那看看,mps_job表的 jb_date和 kh_jb_enddate的数据类型是否都是 datetime类型呢
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 16 楼 yupeigu 的回复:
对了,这个有问题的语句,和上面不用临时表的,逻辑上没什么区别吧
都没问题,就是使用临时#xmxtkh表和mps_job表,进行第二查询,使用2个时间来匹配,就不行了。
  • 打赏
  • 举报
回复
对了,这个有问题的语句,和上面不用临时表的,逻辑上没什么区别吧
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 14 楼 yupeigu 的回复:
[quote=引用 13 楼 u012416193 的回复:] [quote=引用 10 楼 yupeigu 的回复:] mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
  所有有返回的工作   序 业务编号 业务名称 发起部门 发起时间 通过时间 审核天数 业务状态 返回工作部门 返回执行人 返回工作内容 业务返回时间 返回原因说明 被返回部门 被返回执行人 被返回工作内容 累计业务

返回次数
 测试 
{order} {ord_no} {kh_ord_title} {kh_ord_depart} {kh_ord_date} {kh_ord_date00} {kh_auditdays} {kh_ord_status} {kh_cu_depart} {kh_jb_creator} {kh_jb_type} {kh_jb_enddate} {kh_reason} {cu_depart} {jb_creator} {jb_type} {kh_retry} {kh_ceshi} 

1   协助服务器安全性测试 产品研发部 2013-10-22 14:36 2013-10-25 09:22 4 立项已完成 产品研发部 陈向华 填报项目基本信息 2013-10-22 14:36:54 123350被返回,原因:同意       1   
2   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 采购部 赵佳 采购部|填报主辅材资料 2013-10-31 11:22:28 125160同意,被返回,原因:重新计算价格       3   
3   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-21 11:47:23 122996被返回,原因:打不开附件。       3   
4   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-31 10:48:07 124156被返回,原因:打不开附件,请重新提交,谢谢。       3   
5   九洲13年高清数显采购(最新) 市州客户部 2013-10-10 16:28 2013-10-17 15:34 8 立项已完成 市州客户部 方艾 填报项目基本信息 2013-10-10 16:30:48 121270被返回,原因:由于系统原因,上传文件全部显示为乱码,已与方艾联系,返回重填。       1   
6   华能涪江水电公司监控项目 重点项目部 2013-10-10 14:47 2013-10-14 15:36 5 立项已完成 重点项目部 郭庆 填报项目基本信息 2013-10-10 16:36:37 121146被返回,原因:请上传主辅材清单需求表,已联系前端负责人员,要求返回修改数据。       1   
7   川通服青神项目DVR采购 金融事业部 2013-10-21 14:15 2013-10-23 13:49 3 立项已完成 金融事业部 寇磊 填报项目基本信息 2013-10-21 14:15:43 123023被返回,原因:同意       1   
8   成都市龙泉驿区城市管理局数字城管天网高清设备采购安装 大成都客户部 2013-10-22 15:45 2013-10-25 09:00 4 立项已完成 大成都客户部 张伟佳 填报项目基本信息 2013-10-22 15:45:16 123400被返回,原因:未知       1   
9   金堂县公安局高清天网改造及新建项目 大成都客户部 2013-10-14 16:15 2013-10-18 12:02 5 立项已完成 大成都客户部 杜明荣 填报项目基本信息 2013-10-14 16:15:45 122003被返回,原因:代收维护费没有填       1   
10   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 15:07:56 123643同意,被返回,原因:引电费       2   
11   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 16:41:51 123720同意,被返回,原因:未知       2   
12   2013年青羊区高清点位建设一期项目 大成都客户部 2013-10-31 08:53 2013-10-31 17:28 1 审核中 大成都客户部 石凯 填报项目基本信息 2013-10-31 08:53:18 125078被返回,原因:未知       1   
13   乐至“数字工地”项目 住建信息化事业部 2013-10-09 11:20 2013-10-11 13:58 3 立项已完成 住建信息化事业部 曲鹏飞 填报项目基本信息 2013-10-09 11:21:06 120648被返回,原因:施工费2未填,第二三次费用未填       1   
共有 0 条数据,共 0 页    
这个就是结果,但是如果在带入mps_job里面,用kh_jb_enddate来匹配mps_job里面的jb_data(jb_data就是他的接收时间,而kh_jb_enddate就是上一个人处理返回的时间),但就报错了[/quote] 对了 你上面的字段显示是这个: kh_ord_date00 对吗?[/quote] kh_ord_date00 是他这个业务在完成评审的时间,而kh_jb_enddate才是这个业务当有人返回的时间,并且这个时间,正好是业务被返回人接手的时间。所以,我想要这个时间来匹配,查到被返回人,然后再一条记录上,实现返回人被返回人的显示。
  • 打赏
  • 举报
回复
引用 13 楼 u012416193 的回复:
[quote=引用 10 楼 yupeigu 的回复:] mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
  所有有返回的工作   序 业务编号 业务名称 发起部门 发起时间 通过时间 审核天数 业务状态 返回工作部门 返回执行人 返回工作内容 业务返回时间 返回原因说明 被返回部门 被返回执行人 被返回工作内容 累计业务

返回次数
 测试 
{order} {ord_no} {kh_ord_title} {kh_ord_depart} {kh_ord_date} {kh_ord_date00} {kh_auditdays} {kh_ord_status} {kh_cu_depart} {kh_jb_creator} {kh_jb_type} {kh_jb_enddate} {kh_reason} {cu_depart} {jb_creator} {jb_type} {kh_retry} {kh_ceshi} 

1   协助服务器安全性测试 产品研发部 2013-10-22 14:36 2013-10-25 09:22 4 立项已完成 产品研发部 陈向华 填报项目基本信息 2013-10-22 14:36:54 123350被返回,原因:同意       1   
2   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 采购部 赵佳 采购部|填报主辅材资料 2013-10-31 11:22:28 125160同意,被返回,原因:重新计算价格       3   
3   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-21 11:47:23 122996被返回,原因:打不开附件。       3   
4   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-31 10:48:07 124156被返回,原因:打不开附件,请重新提交,谢谢。       3   
5   九洲13年高清数显采购(最新) 市州客户部 2013-10-10 16:28 2013-10-17 15:34 8 立项已完成 市州客户部 方艾 填报项目基本信息 2013-10-10 16:30:48 121270被返回,原因:由于系统原因,上传文件全部显示为乱码,已与方艾联系,返回重填。       1   
6   华能涪江水电公司监控项目 重点项目部 2013-10-10 14:47 2013-10-14 15:36 5 立项已完成 重点项目部 郭庆 填报项目基本信息 2013-10-10 16:36:37 121146被返回,原因:请上传主辅材清单需求表,已联系前端负责人员,要求返回修改数据。       1   
7   川通服青神项目DVR采购 金融事业部 2013-10-21 14:15 2013-10-23 13:49 3 立项已完成 金融事业部 寇磊 填报项目基本信息 2013-10-21 14:15:43 123023被返回,原因:同意       1   
8   成都市龙泉驿区城市管理局数字城管天网高清设备采购安装 大成都客户部 2013-10-22 15:45 2013-10-25 09:00 4 立项已完成 大成都客户部 张伟佳 填报项目基本信息 2013-10-22 15:45:16 123400被返回,原因:未知       1   
9   金堂县公安局高清天网改造及新建项目 大成都客户部 2013-10-14 16:15 2013-10-18 12:02 5 立项已完成 大成都客户部 杜明荣 填报项目基本信息 2013-10-14 16:15:45 122003被返回,原因:代收维护费没有填       1   
10   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 15:07:56 123643同意,被返回,原因:引电费       2   
11   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 16:41:51 123720同意,被返回,原因:未知       2   
12   2013年青羊区高清点位建设一期项目 大成都客户部 2013-10-31 08:53 2013-10-31 17:28 1 审核中 大成都客户部 石凯 填报项目基本信息 2013-10-31 08:53:18 125078被返回,原因:未知       1   
13   乐至“数字工地”项目 住建信息化事业部 2013-10-09 11:20 2013-10-11 13:58 3 立项已完成 住建信息化事业部 曲鹏飞 填报项目基本信息 2013-10-09 11:21:06 120648被返回,原因:施工费2未填,第二三次费用未填       1   
共有 0 条数据,共 0 页    
这个就是结果,但是如果在带入mps_job里面,用kh_jb_enddate来匹配mps_job里面的jb_data(jb_data就是他的接收时间,而kh_jb_enddate就是上一个人处理返回的时间),但就报错了[/quote] 对了 你上面的字段显示是这个: kh_ord_date00 对吗?
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 10 楼 yupeigu 的回复:
mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
  所有有返回的工作   序 业务编号 业务名称 发起部门 发起时间 通过时间 审核天数 业务状态 返回工作部门 返回执行人 返回工作内容 业务返回时间 返回原因说明 被返回部门 被返回执行人 被返回工作内容 累计业务

返回次数
 测试 
{order} {ord_no} {kh_ord_title} {kh_ord_depart} {kh_ord_date} {kh_ord_date00} {kh_auditdays} {kh_ord_status} {kh_cu_depart} {kh_jb_creator} {kh_jb_type} {kh_jb_enddate} {kh_reason} {cu_depart} {jb_creator} {jb_type} {kh_retry} {kh_ceshi} 

1   协助服务器安全性测试 产品研发部 2013-10-22 14:36 2013-10-25 09:22 4 立项已完成 产品研发部 陈向华 填报项目基本信息 2013-10-22 14:36:54 123350被返回,原因:同意       1   
2   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 采购部 赵佳 采购部|填报主辅材资料 2013-10-31 11:22:28 125160同意,被返回,原因:重新计算价格       3   
3   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-21 11:47:23 122996被返回,原因:打不开附件。       3   
4   眉山视频管家中心存储 运行维护部 2013-10-21 11:47 2013-10-31 17:15 11 审核中 运行维护部 马迅 填报项目基本信息 2013-10-31 10:48:07 124156被返回,原因:打不开附件,请重新提交,谢谢。       3   
5   九洲13年高清数显采购(最新) 市州客户部 2013-10-10 16:28 2013-10-17 15:34 8 立项已完成 市州客户部 方艾 填报项目基本信息 2013-10-10 16:30:48 121270被返回,原因:由于系统原因,上传文件全部显示为乱码,已与方艾联系,返回重填。       1   
6   华能涪江水电公司监控项目 重点项目部 2013-10-10 14:47 2013-10-14 15:36 5 立项已完成 重点项目部 郭庆 填报项目基本信息 2013-10-10 16:36:37 121146被返回,原因:请上传主辅材清单需求表,已联系前端负责人员,要求返回修改数据。       1   
7   川通服青神项目DVR采购 金融事业部 2013-10-21 14:15 2013-10-23 13:49 3 立项已完成 金融事业部 寇磊 填报项目基本信息 2013-10-21 14:15:43 123023被返回,原因:同意       1   
8   成都市龙泉驿区城市管理局数字城管天网高清设备采购安装 大成都客户部 2013-10-22 15:45 2013-10-25 09:00 4 立项已完成 大成都客户部 张伟佳 填报项目基本信息 2013-10-22 15:45:16 123400被返回,原因:未知       1   
9   金堂县公安局高清天网改造及新建项目 大成都客户部 2013-10-14 16:15 2013-10-18 12:02 5 立项已完成 大成都客户部 杜明荣 填报项目基本信息 2013-10-14 16:15:45 122003被返回,原因:代收维护费没有填       1   
10   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 15:07:56 123643同意,被返回,原因:引电费       2   
11   郫县公安局天网三期高清新建项目 大成都客户部 2013-10-22 12:07 2013-10-28 15:22 7 立项已完成 工程部 谢海里 工程部|填报项目施工信息 2013-10-23 16:41:51 123720同意,被返回,原因:未知       2   
12   2013年青羊区高清点位建设一期项目 大成都客户部 2013-10-31 08:53 2013-10-31 17:28 1 审核中 大成都客户部 石凯 填报项目基本信息 2013-10-31 08:53:18 125078被返回,原因:未知       1   
13   乐至“数字工地”项目 住建信息化事业部 2013-10-09 11:20 2013-10-11 13:58 3 立项已完成 住建信息化事业部 曲鹏飞 填报项目基本信息 2013-10-09 11:21:06 120648被返回,原因:施工费2未填,第二三次费用未填       1   
共有 0 条数据,共 0 页    
这个就是结果,但是如果在带入mps_job里面,用kh_jb_enddate来匹配mps_job里面的jb_data(jb_data就是他的接收时间,而kh_jb_enddate就是上一个人处理返回的时间),但就报错了
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 10 楼 yupeigu 的回复:
mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
对的就是加上了mps_job这表就报错了
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 10 楼 yupeigu 的回复:
mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
都有的啊,在上面建立临时表的时候,就在那里面取得,根据条件,筛选出来符合条件的,具有返回性质的哪段数据,然后在那上面取最后的时间,得到的这时间在第二次次利用,在来重复查询一次这个表,临时表的结束时间与mps_job里面,开始时间一样,编号jb_ordid一样 jb_ordno编号一样,那么这个的数据就是被返回人的数据,在把2个数据连接起来,就得到返回人,被返回人的数据了
  • 打赏
  • 举报
回复
mps_job的这些字段都有吗: jb_ordid jb_ordno jb_date
  • 打赏
  • 举报
回复
引用 8 楼 u012416193 的回复:
[quote=引用 7 楼 mail_yq 的回复:] 你把这一大串语句分开执行,才能知道哪里错了,写临时表的话像这样建就可以了嘛

 IF OBJECT_ID('tempdb..#a') IS NOT NULL DROP TABLE #a
 CREATE TABLE #a (id INT)
create table #xmxtkh(kh_ord_id bigint, kh_ord_no varchar(50), kh_ord_ext1 nvarchar(100), kh_ord_title nvarchar(100),
 kh_ord_date datetime, kh_cu_depart varchar(50), kh_jb_creator nvarchar(50), kh_jb_type nvarchar(50),
 kh_jb_enddate datetime, kh_ord_depart varchar(30), kh_ord_status nvarchar(16), kh_reason nvarchar(500),
 kh_retry nvarchar(100), kh_ord_date00 datetime, kh_auditdays nvarchar(100))

insert into #xmxtkh(kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays)
select
 ord_id, ord_no, ord_ext1, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate, ord_depart, ord_status,
 min(rtrim(str(jb_id))+jb_context),
 (select count(jb_id) from mps_job where jb_ordid=ord_id and jb_result1='{ed_fhzt}' and (('{ed_fhzt}' = case when jb_type not like '%总经办%' then '被返回' else '未知' end) or ('{ed_fhzt}' = case when jb_type not like '%未知%' then '返回' else '未知' end))),
 (select max(jb_enddate) from mps_job where jb_ordid=ord_id),
 ((select datediff(dd,ord_date,max(jb_enddate)) from mps_job where jb_ordid=ord_id)+1)
from
 mps_job, mps_business, mps_compuser
where
 jb_ordid=ord_id and
 jb_createcuid=cu_id and
 jb_time>0.1 and
 ord_crmid={ddp_type} and
 ('{ed_fqbm}'='' or ',{ed_fqbm},' like '%,'+ord_depart+',%') and
 ('{ed_ywbh}'='' or ord_no like '%{ed_ywbh}%') and
 ord_no not like '%(临)%' and
 ('{ed_ywlx}'='' or ',{ed_ywlx},' like '%,'+ord_ext1+',%') and
 ('{ed_bhbm}'='' or ',{ed_bhbm},' like '%,'+cu_depart+',%') and
 ('{ed_bbhbm}'='' or ',{ed_bbhbm},' not like '%,'+cu_depart+',%') and
 ord_date>='{ed_date1} 00:00:00' and
 ord_date<='{ed_date2} 23:59:59' and
 (select max(jb_enddate) from mps_job where jb_ordid=ord_id)>='{ed_enddate1} 00:00:00' and
 jb_result1='{ed_fhzt}' and
 (('{ed_xmzt}' = case when ord_status='立项已完成' or ord_status='变更已完成' then '评审已通过' 
 else '未知' end) or 
 ('{ed_xmzt}' = case when ord_status<>'立项已完成' and ord_status<>'变更已完成' then '评审未通过' 
 else '未知' end) or 
 ('{ed_xmzt}' = case when ord_status<>'全部' then '全部' 
 else '未知' end))
group by
 ord_type, ord_no, ord_ext1, ord_id, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate,
 ord_status, ord_depart
having
 count(jb_id)>0
order by
 ord_no

select
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays
from
 #xmxtkh
已经测试 临时表已经建立,数据也全部进入临时表,但是,最后当我在把最后的

select
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays
from
 #xmxtkh, mps_job
where
/*上面得到的是业务有返回的所有数据,当有返回后,就有被返回人,我是通过业务的kh_jp_enddate结束时间来查找,业务接单时间一样的人,那个人就是被返回人所以代码是jb_date,也就是业务接单开始时间,但上面一写入mps_job,系统就未知错误,即使后面不写where都不行*/
 jb_ordid=kh_ord_id and
 jb_ordno=kh_ord_no and
 jb_date=kh_jp_enddate
[/quote] 你的意思是,上面那一段已经不报错了,但是最后一段,由于加上了mps_job表后,就报错吗
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 7 楼 mail_yq 的回复:
你把这一大串语句分开执行,才能知道哪里错了,写临时表的话像这样建就可以了嘛

 IF OBJECT_ID('tempdb..#a') IS NOT NULL DROP TABLE #a
 CREATE TABLE #a (id INT)
create table #xmxtkh(kh_ord_id bigint, kh_ord_no varchar(50), kh_ord_ext1 nvarchar(100), kh_ord_title nvarchar(100),
 kh_ord_date datetime, kh_cu_depart varchar(50), kh_jb_creator nvarchar(50), kh_jb_type nvarchar(50),
 kh_jb_enddate datetime, kh_ord_depart varchar(30), kh_ord_status nvarchar(16), kh_reason nvarchar(500),
 kh_retry nvarchar(100), kh_ord_date00 datetime, kh_auditdays nvarchar(100))

insert into #xmxtkh(kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays)
select
 ord_id, ord_no, ord_ext1, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate, ord_depart, ord_status,
 min(rtrim(str(jb_id))+jb_context),
 (select count(jb_id) from mps_job where jb_ordid=ord_id and jb_result1='{ed_fhzt}' and (('{ed_fhzt}' = case when jb_type not like '%总经办%' then '被返回' else '未知' end) or ('{ed_fhzt}' = case when jb_type not like '%未知%' then '返回' else '未知' end))),
 (select max(jb_enddate) from mps_job where jb_ordid=ord_id),
 ((select datediff(dd,ord_date,max(jb_enddate)) from mps_job where jb_ordid=ord_id)+1)
from
 mps_job, mps_business, mps_compuser
where
 jb_ordid=ord_id and
 jb_createcuid=cu_id and
 jb_time>0.1 and
 ord_crmid={ddp_type} and
 ('{ed_fqbm}'='' or ',{ed_fqbm},' like '%,'+ord_depart+',%') and
 ('{ed_ywbh}'='' or ord_no like '%{ed_ywbh}%') and
 ord_no not like '%(临)%' and
 ('{ed_ywlx}'='' or ',{ed_ywlx},' like '%,'+ord_ext1+',%') and
 ('{ed_bhbm}'='' or ',{ed_bhbm},' like '%,'+cu_depart+',%') and
 ('{ed_bbhbm}'='' or ',{ed_bbhbm},' not like '%,'+cu_depart+',%') and
 ord_date>='{ed_date1} 00:00:00' and
 ord_date<='{ed_date2} 23:59:59' and
 (select max(jb_enddate) from mps_job where jb_ordid=ord_id)>='{ed_enddate1} 00:00:00' and
 jb_result1='{ed_fhzt}' and
 (('{ed_xmzt}' = case when ord_status='立项已完成' or ord_status='变更已完成' then '评审已通过' 
 else '未知' end) or 
 ('{ed_xmzt}' = case when ord_status<>'立项已完成' and ord_status<>'变更已完成' then '评审未通过' 
 else '未知' end) or 
 ('{ed_xmzt}' = case when ord_status<>'全部' then '全部' 
 else '未知' end))
group by
 ord_type, ord_no, ord_ext1, ord_id, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate,
 ord_status, ord_depart
having
 count(jb_id)>0
order by
 ord_no

select
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays
from
 #xmxtkh
已经测试 临时表已经建立,数据也全部进入临时表,但是,最后当我在把最后的

select
 kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_cu_depart, kh_jb_creator,
 kh_jb_type, kh_jb_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_retry, kh_ord_date00, kh_auditdays
from
 #xmxtkh, mps_job
where
/*上面得到的是业务有返回的所有数据,当有返回后,就有被返回人,我是通过业务的kh_jp_enddate结束时间来查找,业务接单时间一样的人,那个人就是被返回人所以代码是jb_date,也就是业务接单开始时间,但上面一写入mps_job,系统就未知错误,即使后面不写where都不行*/
 jb_ordid=kh_ord_id and
 jb_ordno=kh_ord_no and
 jb_date=kh_jp_enddate
再来壹串 2013-10-31
  • 打赏
  • 举报
回复
你把这一大串语句分开执行,才能知道哪里错了,写临时表的话像这样建就可以了嘛

 IF OBJECT_ID('tempdb..#a') IS NOT NULL DROP TABLE #a
 CREATE TABLE #a (id INT)
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
找到了其中一个错误 kh_ord_depart varchar(30) 写了2次,第一个应该写成kh_cu_depart varchar(50),其他还在测试中
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
引用 3 楼 mail_yq 的回复:
报什么错?
好像临时数据库没建立起来一样,我单独用那句话建立临时数据库也不行
zqqz111 2013-10-31
  • 打赏
  • 举报
回复
错误码(未知) exec mps_stat_cross0 41,270,'','','create table #xmxtkh(kh_ord_id bigint, kh_ord_no varchar(50), kh_ord_ext1 nvarchar(100), kh_ord_title nvarchar(100), kh_ord_date datetime, kh_ord_depart varchar(30), kh_jp_creator nvarchar(50), kh_jp_type nvarchar(50), kh_jp_enddate datetime, kh_ord_depart varchar(30), kh_ord_status nvarchar(16), kh_reason nvarchar(500), kh_count bigint, kh_ord_date00 datetime, kh_ayditdays bigint) insert into #xmxtkh(kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_ord_depart, kh_jp_creator, kh_jp_type, kh_jp_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_count, kh_ord_date00, kh_ayditdays) select ord_id, ord_no, ord_ext1, ord_title, ord_date, cu_depart, jb_creator, jb_type, jb_enddate, ord_depart, ord_status, min(rtrim(str(jb_id))+jb_context), /* 计算本业务单据【返回】和【被返回】合计数量,其中在计算【被返回】总数时会剔除【总经办审核步骤】的【被返回】数据,而【返回】计算全部数据 */ (select count(jb_id) from mps_job where jb_ordid=ord_id and jb_result1=''被返回'' and ((''被返回'' = case when jb_type not like ''%总经办%'' then ''被返回'' else ''未知'' end) or (''被返回'' = case when jb_type not like ''%未知%'' then ''返回'' else ''未知'' end))), /* 计算业务最后完成那步骤的时间 */ (select max(jb_enddate) from mps_job where jb_ordid=ord_id), /* 计算业务开始时间到最后步骤时间,中途所用的天数 */ (select datediff(dd,ord_date,max(jb_enddate)) from mps_job where jb_ordid=ord_id)+1 from mps_job, mps_business, mps_compuser where jb_ordid=ord_id and jb_createcuid=cu_id and jb_time>0.1 and ord_crmid=1504 and (''''='''' or '',,'' like ''%,''+ord_depart+'',%'') and (''''='''' or ord_no like ''%%'') and ord_no not like ''%(临)%'' and (''''='''' or '',,'' like ''%,''+ord_ext1+'',%'') and (''''='''' or '',,'' like ''%,''+cu_depart+'',%'') and (''总经办''='''' or '',总经办,'' not like ''%,''+cu_depart+'',%'') and ord_date>=''2013-10-01 00:00:00'' and ord_date<=''2013-10-31 23:59:59'' and /* 完成业务评审的取得业务完成审核的时间。如果业务在评审中,那么就是评审最后一步所用的时间 */ (select max(jb_enddate) from mps_job where jb_ordid=ord_id)>=''2013-09-01 00:00:00'' and jb_result1=''被返回'' and ((''全部'' = case when ord_status=''立项已完成'' or ord_status=''变更已完成'' then ''评审已通过'' else ''未知'' end) or (''全部'' = case when ord_status<>''立项已完成'' and ord_status<>''变更已完成'' then ''评审未通过'' else ''未知'' end) or (''全部'' = case when ord_status<>''全部'' then ''全部'' else ''未知'' end)) order by ord_no select kh_ord_id, kh_ord_no, kh_ord_ext1, kh_ord_title, kh_ord_date, kh_ord_depart, kh_jp_creator, kh_jp_type, kh_jp_enddate, kh_ord_depart, kh_ord_status, kh_reason, kh_count, kh_ord_date 就这样没了
再来壹串 2013-10-31
  • 打赏
  • 举报
回复
报什么错?
加载更多回复(2)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧