sql:[dbo].[smt_MES_RptProductDaily] 生产日报表
USE [ChangHongMES_904]
GO
/****** Object: StoredProcedure [dbo].[smt_MES_RptProductDaily] Script Date: 09/15/2015 12:26:38
页面在:RptProduct.aspx
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[smt_MES_RptProductDaily]
(
@StartTime nvarchar(20)='',
@EndTime nvarchar(20)='',
@ItemNo nvarchar(30)='',
@ItemName nvarchar(50)='',
@DisPatchNO nvarchar(20)='',
@MO nvarchar(20)='',
@MachineNO nvarchar(20)='',
@Pagecount int=100,
@Pageindex int=1
)
--2015071005
--MO 工单号
--DispatchNO 派工单号
--MachineNO 机器编号
--ItemNO 产品编号
--DispatchQty 派工数量
--ItemName 产品名称(产品描述)
AS
begin
create table #ProductDaillyTemp
(
ID int identity(1,1),
CurrDate nvarchar(20),
MO nvarchar(20),
DispatchNO nvarchar(30),
MachineNO nvarchar(50),
ItemNo nvarchar(50),
ItemName nvarchar(50),
DispatchQty nvarchar(30), --派工单数量
ProdQty nvarchar(30), --生产数量
YiProdQty nvarchar(30),--已生产数量
RuProdQty nvarchar(30),--入库数量
ChuProdQty nvarchar(30),--出库数量
jiecunProdQty nvarchar(30)--结存数量
)
insert into #ProductDaillyTemp
select
A.CurrDate '生产日期',
A.MO '工单号',
A.DispatchNO '派工单号',
A.MachineNO '机器编号',
A.ItemNo '产品编号',
A.ItemName '产品名称',
max(B.DispatchQty) '派工数量',
sum(A.ProdQty) '生产数量',
(
select sum(rr.ProdQty) '已生产数量'
from dbo.JM_Interface RR
where RR.MO=A.MO
and RR.DispatchNO=A.DispatchNO
and RR.MachineNO=A.MachineNO
and RR.ItemNo=A.ItemNo
and RR.ItemName=A.ItemName
and RR.CurrDate<A.CurrDate
--group by RR.MO,RR.DispatchNO,RR.MachineNO,RR.ItemNo,RR.ItemName
),
'',--入库数量
'',--出库数量
'' --结存数量
from
dbo.JM_Interface A
--left join dbo.MES_DispatchOrder B
left join [dbo].[V_DispatchOrder] B
on A.MO=B.MO
and A.DispatchNO=B.DispatchNO
and A.MachineNO=B.MachineNO
and A.ItemNo=B.ItemNO
where A.MO<>''
group by A.MO,A.DispatchNO,A.MachineNO,A.ItemNo,A.ItemName,A.CurrDate
--------------------------------------------------------------------------
--select 'ProductDaillyTemp 表:'
--select * from #ProductDaillyTemp
--where MO='2015071005'
--order by CurrDate desc
--select * from dbo.JM_Interface where MO='2015071005'
--select DispatchQty,* from dbo.MES_DispatchOrder B where MO='2015071005'
--select A.MO, A.* from dbo.MES_DispatchOrder A where A.MO='2015071005'
-------------------------------------------------------------------------2015071005
--1.统计已经生产数量(没有用到,改为上面的方式统计已生产数量)
create table #YiProductTemp
(
MO nvarchar(20),
DispatchNO nvarchar(30),
MachineNO nvarchar(50),
ItemNo nvarchar(50),
ItemName nvarchar(50),
YiProdQty nvarchar(30)
)
insert into #YiProductTemp
select
A.MO '工单号',
A.DispatchNO '派工单号',
A.MachineNO '机器编号',
A.ItemNo '产品编号',
A.ItemName '产品名称',
sum(A.ProdQty) '已生产数量'
from
dbo.JM_Interface A
group by A.MO,A.DispatchNO,A.MachineNO,A.ItemNo,A.ItemName
--select 'AA'
--select * from #YiProductTemp
---更新到报表中去
--update T set T.YiProdQty=(T.YiProdQty-M.YiProdQty)
--update T set T.YiProdQty=convert(nvarchar(30),convert(float,ISNULL(T.YiProdQty,0))-convert(float,IsNull(M.YiProdQty,0)))
--from #ProductDaillyTemp T join #YiProductTemp M
--on T.MO=M.MO and T.DispatchNO=M.DispatchNO and T.MachineNO=M.MachineNO and T.ItemNo=M.ItemNo and T.ItemName=M.ItemName and T.CurrDate=M.YiProdQty
--2.统计入库数量(dbo.WMS_StockInItem在WMS数据库上 创建视图跨表)
--select A.ItemNO,A.Mo,A.CurrDate,SUM(A.InQty) AllInQty
--into #d from ChangHongWMS_904.dbo.WMS_StockInItem A
--group by A.ItemNO,A.Mo,A.CurrDate
select A.ItemNO,A.Mo,A.CurrDate,SUM(A.InQty) AllInQty
into #d
from
ChangHongWMS_904.dbo.WMS_StockInItem A
join ChangHongWMS_904.dbo.WMS_StockInBill B
on A.BillNO=B.BillNO
where B.Status='appr'--已经审核的
group by A.ItemNO,A.Mo,A.CurrDate
--20150616加按时间
update T
set T.RuProdQty=(select D.AllInQty from #d D where D.ItemNO=T.ItemNo and D.Mo=T.MO and D.CurrDate=T.CurrDate)
from #ProductDaillyTemp T
--3.统计出库数量
--select A.ItemNO,A.Mo,A.CurrDate,SUM(A.OutQty) AllOutQty
--into #Chu from ChangHongWMS_904.dbo.WMS_StockOutItem A
--group by A.ItemNO,A.Mo,A.CurrDate
select B.ItemNO,B.MO,A.[Date],SUM(B.OutQty) AllOutQty
into #Chu
--from ChangHongWMS_904.dbo.WMS_StockOutBill A--货品出库主表
--join ChangHongWMS_904.dbo.WMS_StockOutItem B--货品出库从表
from ChangHongWMS_904.dbo.WMS_StockOutItem B--货品出库主表
left join ChangHongWMS_904.dbo.WMS_StockOutBill A --货品出库从表
on B.BillNO=A.BillNO
where A.Status='appr'
group by B.ItemNO,B.MO,A.[Date]
update T set T.ChuProdQty=(select D.AllOutQty from #Chu D where D.ItemNO=T.ItemNo and D.MO=T.MO and D.[Date]=T.CurrDate)
from #ProductDaillyTemp T
--4.结存数量
update T set T.jiecunProdQty=convert(nvarchar(30),convert(float,ISNULL(T.RuProdQty,0))-convert(float,IsNull(T.ChuProdQty,0)))
from #ProductDaillyTemp T
--select * from #YiProductTemp--已生产表
------------报表生成
--分页
declare @row_from int, @row_to int,@out_total_rows int
select @out_total_rows = count(*) from #ProductDaillyTemp SS
where ((SS.CurrDate between @StartTime and @EndTime) or @StartTime='' or @EndTime='')
and (@ItemNo = '' or SS.ItemNo like '%' +@ItemNo+'%')
and (@ItemName = '' or ss.ItemName like '%' +@ItemName+'%')
and (@DisPatchNO = '' or SS.DispatchNO like '%'+@DisPatchNO+'%' )
and (@MO = '' or ss.MO like '%' +@MO+'%')
and (@MachineNO = '' or SS.MachineNO like '%'+@MachineNO+'%' )
print @out_total_rows
execute st_MES_RS_Pages @out_total_rows, @Pagecount, @Pageindex, @row_from output, @row_to output
select * from
(
select ROW_NUMBER()over(order by SS.CurrDate desc) as numder,SS.*
from #ProductDaillyTemp SS
where ((SS.CurrDate between @StartTime and @EndTime) or @StartTime='' or @EndTime='')
and (@ItemNo = '' or SS.ItemNo like '%' +@ItemNo+'%')
and (@ItemName = '' or ss.ItemName like '%' +@ItemName+'%')
and (@DisPatchNO = '' or SS.DispatchNO like '%'+@DisPatchNO+'%' )
and (@MO = '' or ss.MO like '%' +@MO+'%')
and (@MachineNO = '' or SS.MachineNO like '%'+@MachineNO+'%' )
) HH
where HH.numder between @row_from and @row_to
order by HH.CurrDate desc
--总行数
select @out_total_rows
---产品下面的原材料统计
--select '原材料统计'
--产品所属的原材料临时表
select MA.* into #ProMaterilTemp from
ChangHongMES_904.dbo.MES_BOM MA
where
MA.ParentId in (select CC.ID
From ChangHongMES_904.dbo.MES_BOM CC
join #ProductDaillyTemp MM
on CC.ItemNO=MM.ItemNo
--where CC.ItemNO=@ItemNo or @ItemNo=''
)
--原料表库存表
select AA.RawNO, SUM(AA.MQty) MQty into #YuanLiaoTemp from
ChangHongWMS_904.dbo.KIT_MaterialStock AA
group by AA.RawNO
select distinct AA.ItemNO,AA.ParentId,AA.ParentItemNO,AA.ItemName,
SUBSTRING(convert(nvarchar(50),(AA.Scrap/AA.Qty)*BB.DispatchQty,10),0,8) JIhuaNum,
AA.unit,
CC.MQty,
BB.MO--工单号
from #ProMaterilTemp AA
left join #ProductDaillyTemp BB on AA.ParentItemNO=BB.ItemNo
left join #YuanLiaoTemp CC on BB.ItemNo=CC.RawNO
where
--(AA.ParentItemNO=@ItemNo or @ItemNo='')
(AA.ParentItemNO like '%'+@ItemNo+'%' or @ItemNo='')
and
--(BB.MO=@MO or @MO='')
(BB.MO like '%'+@MO+'%' or @MO='')
--select '产品所属的原材料临时表'
--select AA.ItemNO,AA.ParentId,AA.ParentItemNO,AA.ItemName from #ProMaterilTemp AA order by AA.ParentItemNO
drop table #d
drop table #Chu
drop table #YiProductTemp
drop table #ProductDaillyTemp
end
--select MA.* from
--ChangHongMES_904.dbo.MES_BOM MA
--where MA.ParentId=671
----------------------------------前端
if (CacheHelper.GetCache(Page.User.Identity.Name + "ProductDailyMa") == null)
return;
DataTable dtStock = CacheHelper.GetCache(Page.User.Identity.Name + "ProductDailyMa") as DataTable;
ASPxGridView itemGridView = gr_Main.FindDetailRowTemplateControl(e.VisibleIndex, "detailGrid") as ASPxGridView;
if (itemGridView == null) return;
string itemNo = gr_Main.GetRowValues(e.VisibleIndex, "ItemNo").ToString();
string MO= gr_Main.GetRowValues(e.VisibleIndex, "MO").ToString();
string startDate = string.Empty;
string endDate = string.Empty;
DataTable newdt = new DataTable();
newdt = dtStock.Clone();
DataRow[] dr = dtStock.Select(" ParentItemNO like '%" + itemNo + "%' and MO like '%" +MO+ "%'");
for (int i = 0; i < dr.Length; i++)
{
newdt.ImportRow((DataRow)dr[i]);
}
itemGridView.DataSource = newdt;
itemGridView.DataBind();
sql:[dbo].[smt_MES_RptProductDaily] 生产日报表的更多相关文章
- MyBatis mysal 日报表,月,年报表的统计
mysql 按日.周.月.年统计sql语句整理,实现报表统计可视化 原文地址:http://blog.csdn.net/u010543785/article/details/52354957 最近在做 ...
- MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源
MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...
- ABAP 分货日报表
*&---------------------------------------------------------------------* *& Report ZSDR031 ...
- 写sql语句分别按日,星期,月,季度,年统计
--写sql语句分别按日,星期,月,季度,年统计销售额 --按日 ' group by day([date]) --按周quarter ' group by datename(week,[date]) ...
- Silverlight——施工计划日报表(一)
前一段时间,客户需要一个施工计划报表,要求能够直观的看到各个计划的实施时间,而且能够修改.琢磨着,决定用Silverlight搞定好了.效果如下: 用户可以通过右键菜单的[完成]选项来标记完成,左键选 ...
- Silverlight——施工计划日报表(二)
近来一直在加班,基本上没有个人时间.所以更新不会很即时. 长话短说,先从界面代码开始吧.界面代码很简单,如下所示: <UserControl xmlns:sdk="http://sch ...
- 数据库:sql语句分别按日,按周,按月,按季统计金额
如: 表:consume_record 字段:consume (money类型) date (datetime类型) 请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量. 如:1月 120 ...
- 【SQL】用Sql Server自动生产html格式的数据字典
原文:[SQL]用Sql Server自动生产html格式的数据字典 本文软件环境:Sql Server 2008. 1.打开sql server管理器,给选定的表添加描述信息,给指定的字段添加描述信 ...
- SQL Server 在生产环境中这样写存储过程的坑都避免了吗?
概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章 ...
随机推荐
- POJ 1577 Falling Leaves
题意:给出一些字符串,从上到下的建树,输出其前序遍历 像前面那一题一样,先建树,然后再递归前序遍历 不过想像上一题那样用数组建树,建树和上题一样的办法,可是应该怎么输出前序遍历呢= = 还是看的题解= ...
- 最受Web前端开发者欢迎的五大开发工具
工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...
- web请求报出 “超过了最大请求长度” 【注意:重启IIS】
摘自:http://www.cnblogs.com/loalongblogs/archive/2012/10/16/2726372.html web请求报出 “超过了最大请求长度” 错误原因:as ...
- HDU 1213 How Many Tables (并查集,常规)
并查集基本知识看:http://blog.csdn.net/dellaserss/article/details/7724401 题意:假设一张桌子可坐无限多人,小明准备邀请一些朋友来,所有有关系的朋 ...
- Mem Cgroup目录无法清理问题分析
http://blogs.360.cn/360xitong/2013/05/02/mem-cgroup%E7%9B%AE%E5%BD%95%E6%97%A0%E6%B3%95%E6%B8%85%E7% ...
- HDU-4861 Couple doubi
http://acm.hdu.edu.cn/showproblem.php?pid=4861 Couple doubi Time Limit: 2000/1000 MS (Java/Others) ...
- <转>python version 2.7 required,which was not found in the registry
安装PIL-1.1.7.win32-py2.7的时候,不能再注册表中识别出来python2.7 方法:新建一个register.py 文件,把一下代码贴进去,保存 # # script to regi ...
- CSS垂直水平完全居中手册
水平居中 内联元素(inline or inline-*)居中? 你可以让他相对父级块级元素居中对齐 .center-children { text-align: center; } 块级元素(blo ...
- ili9341 横屏驱动代码
void ili9341_Initializtion(void) { u16 i; RCC->APB2ENR|=<<; //使能PORTB时钟 GPIOB->CRH&= ...
- C#条件语句、循环语句
一.程序的三种结构 顺序结构 分支结构 循环结构 二.条件语句if 语句是最有用的控制结构之一. if … else …语句的语法: if (布尔表达式)执行操作的语句 或if (布尔表达式)执行操 ...