| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:按照不同单据类型求最新出入库日期
只看楼主 加入收藏
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
按照不同单据类型求最新出入库日期
现在的代码如下,能勉强解决问题,请问是否可以有更简便的方法?
我需要知道icstockbill表中的按照不同交易类型(ftrantype)所显示的最新日期。
select
t4.fnumber,
t5.rk,
t6.ck
 from t_icitem t4
left join (select distinct t3.fnumber,max(t1.fcheckdate) as rk from icstockbill t1 left join icstockbillentry t2 on t1.finterid =t2.finterid left join t_icitem t3 on t2.fitemid =t3.fitemid where t1.ftrantype in('1','2','5','10') group by t3.fnumber) as t5 on t4.fnumber =t5.fnumber
--出库日期
left join
(select distinct t3.fnumber,max(t1.fcheckdate) as ck from icstockbill t1 left join icstockbillentry t2 on t1.finterid =t2.finterid left join t_icitem t3 on t2.fitemid =t3.fitemid where t1.ftrantype in('21','24','28','29') group by t3.fnumber) as t6 on t4.fnumber =t6.fnumber
搜索更多相关主题的帖子: where 
2014-04-01 10:18
owenlu1981
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:211
专家分:1130
注 册:2013-5-17
收藏
得分:0 
数据资料提供下,谢谢
2014-04-01 10:41
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
数据太大了。我自己编写一个小点的。
我需要知道的是在下面这张表里面料号22g10-a0针对外购入库单、成品入库单的全部交易中寻找一个最新的日期
同时还需要知道这个料号针对领料单、销售出库单的全部交易中找到一个最新的日期。
目的就是看这颗料的最后一次日期,然后来判断呆滞的具体时间。谢谢。

日期             料号            数量    单据类型
2013-4-1    22g10-a0    30    外购入库单
2013-5-1    22g10-a0    30    外购入库单
2013-6-1    22g10-a0    40    外购入库单
2013-7-7    22g10-a0    50    领料单
2013-8-12    22g10-a0    60    领料单
2013-9-17    22g10-a0    70    销售出库单
2013-10-23    22g10-a0    80    领料单
2013-11-28    22g10-a0    90    成品入库单
2014-1-3    22g10-a0    100    成品入库单
2014-04-01 10:50
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
回复 2楼 owenlu1981
您好,感谢您的答复,我已经提供了数据表,还请帮忙看看,谢谢。
2014-04-01 11:16
owenlu1981
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:211
专家分:1130
注 册:2013-5-17
收藏
得分:20 
1.针对指定料号
Select '22g10-a0' as 料号,Max([日期]) as [最后日期] from (
Select [日期] from 外购入库单 where [料号] = '22g10-a0' union all
Select [日期] from 成品入库单 where [料号] = '22g10-a0' union all
Select [日期] from 领料单 where [料号] = '22g10-a0' union all
Select [日期] from 销售出库单 where [料号] = '22g10-a0')
2.针对所有料号
Select [料号],Max([日期]) as [最后日期] from (
Select [料号],[日期] from 外购入库单 union all
Select [料号],[日期] from 成品入库单 union all
Select [料号],[日期] from 领料单 union all
Select [料号],[日期] from 销售出库单) Group By [料号]

[ 本帖最后由 owenlu1981 于 2014-4-1 11:56 编辑 ]
收到的鲜花
  • hyz000012014-04-01 13:42 送鲜花  3朵   附言:好文章,谢谢您,看样子还是很复杂,我还是 ...
2014-04-01 11:54
owenlu1981
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:211
专家分:1130
注 册:2013-5-17
收藏
得分:0 
有那么多表必须那么长语句啊......
这个总比多次Left join好处理 ^_^
2014-04-01 14:19
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
以下是引用owenlu1981在2014-4-1 14:19:15的发言:

有那么多表必须那么长语句啊......
这个总比多次Left join好处理 ^_^

您好,谢谢挂心,其实表就只有一个,全部的交易类型都在这一张表里面。
我需要做的就是按照不同交易类型获取全部物料的最新时间。
这个用来计算物料呆滞的依据。
2014-04-01 21:03
owenlu1981
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:211
专家分:1130
注 册:2013-5-17
收藏
得分:0 
...
那你居然还用那么多Left join
直接一个Max([Date])就好了
2014-04-01 22:24
快速回复:按照不同单据类型求最新出入库日期
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023760 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved