--删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000001' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000001') begin --插入 Declare @Report_Id_403 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_403 out Declare @Report_Id_403_CateID int Set @Report_Id_403_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_403, 'HO.DSQuery.S.000001', '药库药品库存余额查询', Null, Null, @Report_Id_403_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:22:53', Null, ' E176A21A5171A1EB784E0423A79E857FDECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , S.AAS02 偿付类别 , case when T.BBT08 >=1 then ''是'' else ''否'' end 基本药物 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice*Quantity)*-1 ELSE (PresellPrice*Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM V_DSL1 A WHERE BCK01 = @StoreId GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join aas1 s on y.aas01=s.aas01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity order by AAS02MyClassName=TBarSeries Gradient.Direction=gdTopBottom Marks.Callout.Brush.Color=0 Marks.Visible=True XLabelsSource=品名 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=库存数量DECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.LastQuantity * Y.BBY25*G.BAG09 销售金额 --调价差额没有批号 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01, Unit, BatchNO , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount FROM V_DSL1 A WHERE BCK01 = @StoreId GROUP BY BCK01, BBY01, Unit, BatchNO ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @QuantityDECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.ID 批次Id , K.LastQuantity 库存数量 , K.PurchasePrice 进货价 , K.PurchasePrice * K.LastQuantity 进价金额 , K.PresellPrice 预售价 , K.PresellPrice * K.LastQuantity 预售金额 , Y.BBY25*G.BAG09 销售价 , K.LastQuantity * Y.BBY25*G.BAG09 销售金额 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*K.PackSize 基本单位数量 , Y.BBY08 基本单位 , K.ExpiryDate 有效期至 , K.ProduceDate 生产日期 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , H.BBH03 供应商编号 , H.BBH04 供应商名称 , K.xTypeID 单据种类Id , K.TradeDate 交易时间 , Y.BBY31 有效时间 FROM DSK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BBH1 H ON H.BBH01 = K.BBH01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = &lt;StoreId&gt;) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' E176A21A5171A1EB784E0423A79E857FDECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , S.AAS02 偿付类别 , case when T.BBT08 >=1 then ''是'' else ''否'' end 基本药物 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice*Quantity)*-1 ELSE (PresellPrice*Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM V_DSL1 A WHERE BCK01 = @StoreId GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join aas1 s on y.aas01=s.aas01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity order by AAS02MyClassName=TBarSeries Gradient.Direction=gdTopBottom Marks.Callout.Brush.Color=0 Marks.Visible=True XLabelsSource=品名 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=库存数量DECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.LastQuantity * Y.BBY25*G.BAG09 销售金额 --调价差额没有批号 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01, Unit, BatchNO , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount FROM V_DSL1 A WHERE BCK01 = @StoreId GROUP BY BCK01, BBY01, Unit, BatchNO ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @QuantityDECLARE @StoreId varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.ID 批次Id , K.LastQuantity 库存数量 , K.PurchasePrice 进货价 , K.PurchasePrice * K.LastQuantity 进价金额 , K.PresellPrice 预售价 , K.PresellPrice * K.LastQuantity 预售金额 , Y.BBY25*G.BAG09 销售价 , K.LastQuantity * Y.BBY25*G.BAG09 销售金额 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*K.PackSize 基本单位数量 , Y.BBY08 基本单位 , K.ExpiryDate 有效期至 , K.ProduceDate 生产日期 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , H.BBH03 供应商编号 , H.BBH04 供应商名称 , K.xTypeID 单据种类Id , K.TradeDate 交易时间 , Y.BBY31 有效时间 FROM DSK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BBH1 H ON H.BBH01 = K.BBH01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = &lt;StoreId&gt;) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000001' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000002' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000002') begin --插入 Declare @Report_Id_404 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_404 out Declare @Report_Id_404_CateID int Set @Report_Id_404_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_404, 'HO.DSQuery.S.000002', '药库药品历史库存查询', Null, Null, @Report_Id_404_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:23:18', Null, ' 8E563503B13E69BD3BFE3DDE9BA67AFBDECLARE @StoreId varchar(10) , @EndDate Datetime , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @EndDate= :EndDate set @Quantity= :Quantity set @BBY05=:BBY05 if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select * into #DSK2 from ( select ROW_NUMBER() over(partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 where sysdate >= @EndDate ) A where A.xRow = 1 if OBJECT_ID(''tempdb..#DSL1'') is not null drop table #DSL1 select A.* into #DSL1 from V_DSL1 A join BBY1 Y on Y.BBY01 = A.BBY01 where A.BCK01 = @StoreId and A.AuditingDate <= @EndDate and Y.BBY05 LIKE @BBY05+''%'' update A set A.PresellPrice = B.PresellPrice from #DSL1 A join #DSK2 B on B.BBY01 = A.BBY01 and B.DSK1_ID = A.DSK_ID SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , Y.BBE02 产地 , G.BAG15 批准文号 , @EndDate 截止时间 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM #DSL1 A GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) DROP TABLE #DSK2 DROP TABLE #DSL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 8E563503B13E69BD3BFE3DDE9BA67AFBDECLARE @StoreId varchar(10) , @EndDate Datetime , @Quantity varchar(20) , @BBY05 varchar(50) set @StoreId= :StoreId set @EndDate= :EndDate set @Quantity= :Quantity set @BBY05=:BBY05 if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select * into #DSK2 from ( select ROW_NUMBER() over(partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 where sysdate >= @EndDate ) A where A.xRow = 1 if OBJECT_ID(''tempdb..#DSL1'') is not null drop table #DSL1 select A.* into #DSL1 from V_DSL1 A join BBY1 Y on Y.BBY01 = A.BBY01 where A.BCK01 = @StoreId and A.AuditingDate <= @EndDate and Y.BBY05 LIKE @BBY05+''%'' update A set A.PresellPrice = B.PresellPrice from #DSL1 A join #DSK2 B on B.BBY01 = A.BBY01 and B.DSK1_ID = A.DSK_ID SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , K.LastQuantity*G.BAG09 基本单位数量 , Y.BBY08 基本单位 , Y.BBE02 产地 , G.BAG15 批准文号 , @EndDate 截止时间 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM #DSL1 A GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @StoreId) DROP TABLE #DSK2 DROP TABLE #DSL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000002' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000018' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000018') begin --插入 Declare @Report_Id_405 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_405 out Declare @Report_Id_405_CateID int Set @Report_Id_405_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_405, 'HO.DSQuery.S.000018', '药库药品有效期查询', Null, Null, @Report_Id_405_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:38:00', Null, ' 13E5EDA8801BBB9FD8B020E7C905C1A5DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @ExpiryBegin varchar(20) , @ExpiryEnd varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @ExpiryBegin= :ExpiryBegin set @ExpiryEnd= :ExpiryEnd SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , K.PurchasePrice 进货价 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM DSK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE K.LastQuantity > 0 and K.BCK01 = @StoreId and Y.BBY05 like @BBY05 + ''%'' and K.ExpiryDate between @ExpiryBegin and @ExpiryEnd<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 13E5EDA8801BBB9FD8B020E7C905C1A5DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @ExpiryBegin varchar(20) , @ExpiryEnd varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @ExpiryBegin= :ExpiryBegin set @ExpiryEnd= :ExpiryEnd SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , K.PurchasePrice 进货价 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM DSK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE K.LastQuantity > 0 and K.BCK01 = @StoreId and Y.BBY05 like @BBY05 + ''%'' and K.ExpiryDate between @ExpiryBegin and @ExpiryEnd<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000018' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000019' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000019') begin --插入 Declare @Report_Id_406 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_406 out Declare @Report_Id_406_CateID int Set @Report_Id_406_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_406, 'HO.DSQuery.S.000019', '药库药品库存预警查询', Null, Null, @Report_Id_406_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:39:01', Null, ' 0E80BA549E68173C8FA3804EB3142712DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @Relation int set @StoreId= :StoreId set @BBY05= :BBY05 set @Relation= :Relation DECLARE @sql varchar(8000) SET @sql = '' SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.LSQty 库存数量 , L.BAL04 限量_库存上限 , L.BAL05 限量_库存下限 , CASE WHEN K.LSQty < ISNULL(L.BAL05, 0) THEN ISNULL(L.BAL05, 0) - K.LSQty END 警戒线_低于警戒线 , CASE WHEN K.LSQty > ISNULL(L.BAL04, 0) THEN K.LSQty - ISNULL(L.BAL04, 0) END 警戒线_高于警戒线 , CASE WHEN K.LSQty < ISNULL(L.BAL04, 0) THEN ISNULL(L.BAL04, 0) - K.LSQty END 警戒线_距最高限差 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01, Unit, SUM(LastQuantity) LSQty, CAST(SUM(LastQuantity*PackSize) AS NUMERIC(18,6)) LSQty2 FROM DSK1 GROUP BY BCK01, BBY01, Unit ) K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join (SELECT A.BDO01, B.BDO03 FROM BDO1 A JOIN BDO1 B ON ISNULL(A.BDO01A, A.BDO01)=B.BDO01) O ON O.BDO01=X.BDO01 WHERE (K.BCK01 = '' + @StoreId + '') and Y.BBY05 like '''''' + @BBY05 + ''%'''''' if @Relation = 1 set @sql = @sql + '' and K.LSQty < L.BAL05'' if @Relation = 2 set @sql = @sql + '' and K.LSQty > L.BAL04'' exec(@sql)<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 0=任意 1=低库存预警 2=高库存预警 ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 0E80BA549E68173C8FA3804EB3142712DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @Relation int set @StoreId= :StoreId set @BBY05= :BBY05 set @Relation= :Relation DECLARE @sql varchar(8000) SET @sql = '' SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.LSQty 库存数量 , L.BAL04 限量_库存上限 , L.BAL05 限量_库存下限 , CASE WHEN K.LSQty < ISNULL(L.BAL05, 0) THEN ISNULL(L.BAL05, 0) - K.LSQty END 警戒线_低于警戒线 , CASE WHEN K.LSQty > ISNULL(L.BAL04, 0) THEN K.LSQty - ISNULL(L.BAL04, 0) END 警戒线_高于警戒线 , CASE WHEN K.LSQty < ISNULL(L.BAL04, 0) THEN ISNULL(L.BAL04, 0) - K.LSQty END 警戒线_距最高限差 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01, Unit, SUM(LastQuantity) LSQty, CAST(SUM(LastQuantity*PackSize) AS NUMERIC(18,6)) LSQty2 FROM DSK1 GROUP BY BCK01, BBY01, Unit ) K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join (SELECT A.BDO01, B.BDO03 FROM BDO1 A JOIN BDO1 B ON ISNULL(A.BDO01A, A.BDO01)=B.BDO01) O ON O.BDO01=X.BDO01 WHERE (K.BCK01 = '' + @StoreId + '') and Y.BBY05 like '''''' + @BBY05 + ''%'''''' if @Relation = 1 set @sql = @sql + '' and K.LSQty < L.BAL05'' if @Relation = 2 set @sql = @sql + '' and K.LSQty > L.BAL04'' exec(@sql)<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 0=任意 1=低库存预警 2=高库存预警 ' where Code='HO.DSQuery.S.000019' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000014' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000014') begin --插入 Declare @Report_Id_407 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_407 out Declare @Report_Id_407_CateID int Set @Report_Id_407_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_407, 'HO.DSQuery.S.000014', '药库药品业务帐查询', Null, Null, @Report_Id_407_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2014-12-04 13:42:15', Null, ' C9D392624EB7065F61C10ACE7C7D31AADECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 AND K2.DSK1_ID = L.DSK_ID WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药库ID, 药品_编号, 药品_品名, 药品_规格, 单位, SUM(药库进货单_数量) 药库进货单_数量, SUM(药库进货单_进价金额) 药库进货单_进价金额, SUM(药库进货单_数量 * PresellPrice) 药库进货单_预售金额, SUM(药库进货单_销售金额) 药库进货单_销售金额, SUM(药库退货单_数量) 药库退货单_数量, SUM(药库退货单_进价金额) 药库退货单_进价金额, SUM(药库退货单_数量 * PresellPrice) 药库退货单_预售金额, SUM(药库退货单_销售金额) 药库退货单_销售金额, SUM(药库出库单_数量) 药库出库单_数量, SUM(药库出库单_进价金额) 药库出库单_进价金额, SUM(药库出库单_数量 * PresellPrice) 药库出库单_预售金额, SUM(药库出库单_销售金额) 药库出库单_销售金额, SUM(药库退库单_数量) 药库退库单_数量, SUM(药库退库单_进价金额) 药库退库单_进价金额, SUM(药库退库单_数量 * PresellPrice) 药库退库单_预售金额, SUM(药库退库单_销售金额) 药库退库单_销售金额, SUM(药库损益单_数量) 药库损益单_数量, SUM(药库损益单_进价金额) 药库损益单_进价金额, SUM(药库损益单_数量 * PresellPrice) 药库损益单_预售金额, SUM(药库损益单_销售金额) 药库损益单_销售金额, SUM(药库盘点单_数量) 药库盘点单_数量, SUM(药库盘点单_进价金额) 药库盘点单_进价金额, SUM(药库盘点单_数量 * PresellPrice) 药库盘点单_预售金额, SUM(药库盘点单_销售金额) 药库盘点单_销售金额, SUM(药库调入单_数量) 药库调入单_数量, SUM(药库调入单_进价金额) 药库调入单_进价金额, SUM(药库调入单_数量 * PresellPrice) 药库调入单_预售金额, SUM(药库调入单_销售金额) 药库调入单_销售金额, SUM(药库调出单_数量) 药库调出单_数量, SUM(药库调出单_进价金额) 药库调出单_进价金额, SUM(药库调出单_数量 * PresellPrice) 药库调出单_预售金额, SUM(药库调出单_销售金额) 药库调出单_销售金额, SUM(药库进价调价差额) 药库进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药库进货单_数量)-SUM(药库退货单_数量)-SUM(药库出库单_数量)+SUM(药库退库单_数量) +SUM(药库损益单_数量)+SUM(药库盘点单_数量)+SUM(药库调入单_数量)-SUM(药库调出单_数量), 结余_进价金额 = SUM(药库进货单_进价金额)-SUM(药库退货单_进价金额)-SUM(药库出库单_进价金额)+SUM(药库退库单_进价金额) + SUM(药库损益单_进价金额)+SUM(药库盘点单_进价金额)+SUM(药库调入单_进价金额)-SUM(药库调出单_进价金额) + SUM(药库进价调价差额), 结余_预售金额 = SUM(药库进货单_预售金额)-SUM(药库退货单_预售金额)-SUM(药库出库单_预售金额)+SUM(药库退库单_预售金额) + SUM(药库损益单_预售金额)+SUM(药库盘点单_预售金额)+SUM(药库调入单_预售金额)-SUM(药库调出单_预售金额), 结余_销售金额 = SUM(药库进货单_销售金额)-SUM(药库退货单_销售金额)-SUM(药库出库单_销售金额)+SUM(药库退库单_销售金额) + SUM(药库损益单_销售金额)+SUM(药库盘点单_销售金额)+SUM(药库调入单_销售金额)-SUM(药库调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DSL1 GROUP BY 药库ID,药品_编号, 药品_品名, 药品_规格, 单位, 产地, 剂型, 药品分类 DROP TABLE #TMP_DSL1StoreId=药库ID Quantity=药库调出单_数量 BBY05=药品_品名DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药库ID, 药品_编号, 药品_品名, 药品_规格, 单位, 产品批号, SUM(药库进货单_数量) 药库进货单_数量, SUM(药库进货单_进价金额) 药库进货单_进价金额, SUM(药库进货单_数量 * PresellPrice) 药库进货单_预售金额, SUM(药库进货单_销售金额) 药库进货单_销售金额, SUM(药库退货单_数量) 药库退货单_数量, SUM(药库退货单_进价金额) 药库退货单_进价金额, SUM(药库退货单_数量 * PresellPrice) 药库退货单_预售金额, SUM(药库退货单_销售金额) 药库退货单_销售金额, SUM(药库出库单_数量) 药库出库单_数量, SUM(药库出库单_进价金额) 药库出库单_进价金额, SUM(药库出库单_数量 * PresellPrice) 药库出库单_预售金额, SUM(药库出库单_销售金额) 药库出库单_销售金额, SUM(药库退库单_数量) 药库退库单_数量, SUM(药库退库单_进价金额) 药库退库单_进价金额, SUM(药库退库单_数量 * PresellPrice) 药库退库单_预售金额, SUM(药库退库单_销售金额) 药库退库单_销售金额, SUM(药库损益单_数量) 药库损益单_数量, SUM(药库损益单_进价金额) 药库损益单_进价金额, SUM(药库损益单_数量 * PresellPrice) 药库损益单_预售金额, SUM(药库损益单_销售金额) 药库损益单_销售金额, SUM(药库盘点单_数量) 药库盘点单_数量, SUM(药库盘点单_进价金额) 药库盘点单_进价金额, SUM(药库盘点单_数量 * PresellPrice) 药库盘点单_预售金额, SUM(药库盘点单_销售金额) 药库盘点单_销售金额, SUM(药库调入单_数量) 药库调入单_数量, SUM(药库调入单_进价金额) 药库调入单_进价金额, SUM(药库调入单_数量 * PresellPrice) 药库调入单_预售金额, SUM(药库调入单_销售金额) 药库调入单_销售金额, SUM(药库调出单_数量) 药库调出单_数量, SUM(药库调出单_进价金额) 药库调出单_进价金额, SUM(药库调出单_数量 * PresellPrice) 药库调出单_预售金额, SUM(药库调出单_销售金额) 药库调出单_销售金额, SUM(药库进价调价差额) 药库进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药库进货单_数量)-SUM(药库退货单_数量)-SUM(药库出库单_数量)+SUM(药库退库单_数量) +SUM(药库损益单_数量)+SUM(药库盘点单_数量)+SUM(药库调入单_数量)-SUM(药库调出单_数量), 结余_进价金额 = SUM(药库进货单_进价金额)-SUM(药库退货单_进价金额)-SUM(药库出库单_进价金额)+SUM(药库退库单_进价金额) + SUM(药库损益单_进价金额)+SUM(药库盘点单_进价金额)+SUM(药库调入单_进价金额)-SUM(药库调出单_进价金额) + SUM(药库进价调价差额), 结余_预售金额 = SUM(药库进货单_预售金额)-SUM(药库退货单_预售金额)-SUM(药库出库单_预售金额)+SUM(药库退库单_预售金额) + SUM(药库损益单_预售金额)+SUM(药库盘点单_预售金额)+SUM(药库调入单_预售金额)-SUM(药库调出单_预售金额), 结余_销售金额 = SUM(药库进货单_销售金额)-SUM(药库退货单_销售金额)-SUM(药库出库单_销售金额)+SUM(药库退库单_销售金额) + SUM(药库损益单_销售金额)+SUM(药库盘点单_销售金额)+SUM(药库调入单_销售金额)-SUM(药库调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DSL1 GROUP BY 药库ID,药品_编号, 药品_品名, 药品_规格, 单位, 产品批号, 产地, 剂型, 药品分类 DROP TABLE #TMP_DSL1DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' update A set A.药库进货单_预售金额 = 药库进货单_数量 * A.PresellPrice , A.药库退货单_预售金额 = 药库退货单_数量 * A.PresellPrice , A.药库出库单_预售金额 = 药库出库单_数量 * A.PresellPrice , A.药库退库单_预售金额 = 药库退库单_数量 * A.PresellPrice , A.药库损益单_预售金额 = 药库损益单_数量 * A.PresellPrice , A.药库盘点单_预售金额 = 药库盘点单_数量 * A.PresellPrice , A.药库调入单_预售金额 = 药库调入单_数量 * A.PresellPrice , A.药库调出单_预售金额 = 药库调出单_数量 * A.PresellPrice from #TMP_DSL1 A select * from #TMP_DSL1 order by 药品ID, 批次号<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' C9D392624EB7065F61C10ACE7C7D31AADECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 AND K2.DSK1_ID = L.DSK_ID WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药库ID, 药品_编号, 药品_品名, 药品_规格, 单位, SUM(药库进货单_数量) 药库进货单_数量, SUM(药库进货单_进价金额) 药库进货单_进价金额, SUM(药库进货单_数量 * PresellPrice) 药库进货单_预售金额, SUM(药库进货单_销售金额) 药库进货单_销售金额, SUM(药库退货单_数量) 药库退货单_数量, SUM(药库退货单_进价金额) 药库退货单_进价金额, SUM(药库退货单_数量 * PresellPrice) 药库退货单_预售金额, SUM(药库退货单_销售金额) 药库退货单_销售金额, SUM(药库出库单_数量) 药库出库单_数量, SUM(药库出库单_进价金额) 药库出库单_进价金额, SUM(药库出库单_数量 * PresellPrice) 药库出库单_预售金额, SUM(药库出库单_销售金额) 药库出库单_销售金额, SUM(药库退库单_数量) 药库退库单_数量, SUM(药库退库单_进价金额) 药库退库单_进价金额, SUM(药库退库单_数量 * PresellPrice) 药库退库单_预售金额, SUM(药库退库单_销售金额) 药库退库单_销售金额, SUM(药库损益单_数量) 药库损益单_数量, SUM(药库损益单_进价金额) 药库损益单_进价金额, SUM(药库损益单_数量 * PresellPrice) 药库损益单_预售金额, SUM(药库损益单_销售金额) 药库损益单_销售金额, SUM(药库盘点单_数量) 药库盘点单_数量, SUM(药库盘点单_进价金额) 药库盘点单_进价金额, SUM(药库盘点单_数量 * PresellPrice) 药库盘点单_预售金额, SUM(药库盘点单_销售金额) 药库盘点单_销售金额, SUM(药库调入单_数量) 药库调入单_数量, SUM(药库调入单_进价金额) 药库调入单_进价金额, SUM(药库调入单_数量 * PresellPrice) 药库调入单_预售金额, SUM(药库调入单_销售金额) 药库调入单_销售金额, SUM(药库调出单_数量) 药库调出单_数量, SUM(药库调出单_进价金额) 药库调出单_进价金额, SUM(药库调出单_数量 * PresellPrice) 药库调出单_预售金额, SUM(药库调出单_销售金额) 药库调出单_销售金额, SUM(药库进价调价差额) 药库进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药库进货单_数量)-SUM(药库退货单_数量)-SUM(药库出库单_数量)+SUM(药库退库单_数量) +SUM(药库损益单_数量)+SUM(药库盘点单_数量)+SUM(药库调入单_数量)-SUM(药库调出单_数量), 结余_进价金额 = SUM(药库进货单_进价金额)-SUM(药库退货单_进价金额)-SUM(药库出库单_进价金额)+SUM(药库退库单_进价金额) + SUM(药库损益单_进价金额)+SUM(药库盘点单_进价金额)+SUM(药库调入单_进价金额)-SUM(药库调出单_进价金额) + SUM(药库进价调价差额), 结余_预售金额 = SUM(药库进货单_预售金额)-SUM(药库退货单_预售金额)-SUM(药库出库单_预售金额)+SUM(药库退库单_预售金额) + SUM(药库损益单_预售金额)+SUM(药库盘点单_预售金额)+SUM(药库调入单_预售金额)-SUM(药库调出单_预售金额), 结余_销售金额 = SUM(药库进货单_销售金额)-SUM(药库退货单_销售金额)-SUM(药库出库单_销售金额)+SUM(药库退库单_销售金额) + SUM(药库损益单_销售金额)+SUM(药库盘点单_销售金额)+SUM(药库调入单_销售金额)-SUM(药库调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DSL1 GROUP BY 药库ID,药品_编号, 药品_品名, 药品_规格, 单位, 产地, 剂型, 药品分类 DROP TABLE #TMP_DSL1StoreId=药库ID Quantity=药库调出单_数量 BBY05=药品_品名DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药库ID, 药品_编号, 药品_品名, 药品_规格, 单位, 产品批号, SUM(药库进货单_数量) 药库进货单_数量, SUM(药库进货单_进价金额) 药库进货单_进价金额, SUM(药库进货单_数量 * PresellPrice) 药库进货单_预售金额, SUM(药库进货单_销售金额) 药库进货单_销售金额, SUM(药库退货单_数量) 药库退货单_数量, SUM(药库退货单_进价金额) 药库退货单_进价金额, SUM(药库退货单_数量 * PresellPrice) 药库退货单_预售金额, SUM(药库退货单_销售金额) 药库退货单_销售金额, SUM(药库出库单_数量) 药库出库单_数量, SUM(药库出库单_进价金额) 药库出库单_进价金额, SUM(药库出库单_数量 * PresellPrice) 药库出库单_预售金额, SUM(药库出库单_销售金额) 药库出库单_销售金额, SUM(药库退库单_数量) 药库退库单_数量, SUM(药库退库单_进价金额) 药库退库单_进价金额, SUM(药库退库单_数量 * PresellPrice) 药库退库单_预售金额, SUM(药库退库单_销售金额) 药库退库单_销售金额, SUM(药库损益单_数量) 药库损益单_数量, SUM(药库损益单_进价金额) 药库损益单_进价金额, SUM(药库损益单_数量 * PresellPrice) 药库损益单_预售金额, SUM(药库损益单_销售金额) 药库损益单_销售金额, SUM(药库盘点单_数量) 药库盘点单_数量, SUM(药库盘点单_进价金额) 药库盘点单_进价金额, SUM(药库盘点单_数量 * PresellPrice) 药库盘点单_预售金额, SUM(药库盘点单_销售金额) 药库盘点单_销售金额, SUM(药库调入单_数量) 药库调入单_数量, SUM(药库调入单_进价金额) 药库调入单_进价金额, SUM(药库调入单_数量 * PresellPrice) 药库调入单_预售金额, SUM(药库调入单_销售金额) 药库调入单_销售金额, SUM(药库调出单_数量) 药库调出单_数量, SUM(药库调出单_进价金额) 药库调出单_进价金额, SUM(药库调出单_数量 * PresellPrice) 药库调出单_预售金额, SUM(药库调出单_销售金额) 药库调出单_销售金额, SUM(药库进价调价差额) 药库进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药库进货单_数量)-SUM(药库退货单_数量)-SUM(药库出库单_数量)+SUM(药库退库单_数量) +SUM(药库损益单_数量)+SUM(药库盘点单_数量)+SUM(药库调入单_数量)-SUM(药库调出单_数量), 结余_进价金额 = SUM(药库进货单_进价金额)-SUM(药库退货单_进价金额)-SUM(药库出库单_进价金额)+SUM(药库退库单_进价金额) + SUM(药库损益单_进价金额)+SUM(药库盘点单_进价金额)+SUM(药库调入单_进价金额)-SUM(药库调出单_进价金额) + SUM(药库进价调价差额), 结余_预售金额 = SUM(药库进货单_预售金额)-SUM(药库退货单_预售金额)-SUM(药库出库单_预售金额)+SUM(药库退库单_预售金额) + SUM(药库损益单_预售金额)+SUM(药库盘点单_预售金额)+SUM(药库调入单_预售金额)-SUM(药库调出单_预售金额), 结余_销售金额 = SUM(药库进货单_销售金额)-SUM(药库退货单_销售金额)-SUM(药库出库单_销售金额)+SUM(药库退库单_销售金额) + SUM(药库损益单_销售金额)+SUM(药库盘点单_销售金额)+SUM(药库调入单_销售金额)-SUM(药库调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DSL1 GROUP BY 药库ID,药品_编号, 药品_品名, 药品_规格, 单位, 产品批号, 产地, 剂型, 药品分类 DROP TABLE #TMP_DSL1DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @StoreId= :StoreId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DSK2'') is not null drop table #DSK2 select M.* into #DSK2 from ( select ROW_NUMBER() over(Partition by BBY01, DSK1_ID order by sysdate) as xRow, * from DSK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' if OBJECT_ID(''tempdb..#TMP_DSL1'') is not null drop table #TMP_DSL1 SELECT L.BCK01 药库ID , Y.BBY01 药品ID , L.AuditingDate 记帐时间 , L.BBY01 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药库进货单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药库进货单_进价金额 , 0 药库进货单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药库进货单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药库退货单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药库退货单_进价金额 , 0 药库退货单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药库退货单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药库出库单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药库出库单_进价金额 , 0 药库出库单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药库出库单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药库退库单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药库退库单_进价金额 , 0 药库退库单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药库退库单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药库损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药库损益单_进价金额 , 0 药库损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药库损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药库盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药库盘点单_进价金额 , 0 药库盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药库盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药库调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药库调入单_进价金额 , 0 药库调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药库调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药库调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药库调出单_进价金额 , 0 药库调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药库调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药库进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DSK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DSL1 FROM V_DSL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DSK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DSK2 K2 on K2.BBY01 = L.BBY01 WHERE (L.BCK01 = @StoreId) AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' update A set A.药库进货单_预售金额 = 药库进货单_数量 * A.PresellPrice , A.药库退货单_预售金额 = 药库退货单_数量 * A.PresellPrice , A.药库出库单_预售金额 = 药库出库单_数量 * A.PresellPrice , A.药库退库单_预售金额 = 药库退库单_数量 * A.PresellPrice , A.药库损益单_预售金额 = 药库损益单_数量 * A.PresellPrice , A.药库盘点单_预售金额 = 药库盘点单_数量 * A.PresellPrice , A.药库调入单_预售金额 = 药库调入单_数量 * A.PresellPrice , A.药库调出单_预售金额 = 药库调出单_数量 * A.PresellPrice from #TMP_DSL1 A select * from #TMP_DSL1 order by 药品ID, 批次号<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000014' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000021' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000021') begin --插入 Declare @Report_Id_409 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_409 out Declare @Report_Id_409_CateID int Set @Report_Id_409_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_409, 'HO.DSQuery.S.000021', '药库药品进销存帐查询', Null, Null, @Report_Id_409_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:24:16', Null, ' CBD7EF0D77426ACBAB4F2B4E12A00D33DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @StoreId= :StoreId set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd SELECT M.BCK01 药库Id , M.iYear 年 , M.iMonth 月 , M.BBY01 药品ID , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 , Y.BBE02 产地 , Q.BAX03 收入项目 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --本期增加 , Quantity_2 - Quantity_3 + Quantity_6P + Quantity_7W + Quantity_8 AS 本期增加_数量 , PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10 AS 本期增加_进价金额 , PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10 AS 本期增加_预售金额 , RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10 AS 本期增加_销售金额 --本期减省 , Quantity_4 - Quantity_5 + Quantity_6L + Quantity_7L + Quantity_9 AS 本期减少_数量 , PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9 AS 本期减少_进价金额 , PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9 AS 本期减少_预售金额 , RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9 AS 本期减少_销售金额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_JXC FROM DSM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 LEFT JOIN BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @StoreId) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_数量, 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_数量, 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 药品分类, 剂型 FROM #TEMP_JXC DROP TABLE #TEMP_JXCDECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @StoreId= :StoreId set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 --期初结余 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 --本期增加 , SUM(PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10) AS 本期增加_进价金额 , SUM(PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10) AS 本期增加_预售金额 , SUM(RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10) AS 本期增加_销售金额 --本期减省 , SUM(PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9) AS 本期减少_进价金额 , SUM(PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9) AS 本期减少_预售金额 , SUM(RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9) AS 本期减少_销售金额 --期未结存 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 INTO #TEMP_JXCHZ FROM DSM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 LEFT JOIN BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @StoreId) and M.iYear=@FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03 SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 FROM #TEMP_JXCHZ DROP TABLE #TEMP_JXCHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 20301 2 3 4 5 6 7 8 9 10 11 12 ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' CBD7EF0D77426ACBAB4F2B4E12A00D33DECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @StoreId= :StoreId set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd SELECT M.BCK01 药库Id , M.iYear 年 , M.iMonth 月 , M.BBY01 药品ID , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 , Y.BBE02 产地 , Q.BAX03 收入项目 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --本期增加 , Quantity_2 - Quantity_3 + Quantity_6P + Quantity_7W + Quantity_8 AS 本期增加_数量 , PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10 AS 本期增加_进价金额 , PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10 AS 本期增加_预售金额 , RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10 AS 本期增加_销售金额 --本期减省 , Quantity_4 - Quantity_5 + Quantity_6L + Quantity_7L + Quantity_9 AS 本期减少_数量 , PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9 AS 本期减少_进价金额 , PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9 AS 本期减少_预售金额 , RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9 AS 本期减少_销售金额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_JXC FROM DSM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 LEFT JOIN BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @StoreId) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_数量, 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_数量, 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 药品分类, 剂型 FROM #TEMP_JXC DROP TABLE #TEMP_JXCDECLARE @StoreId varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @StoreId= :StoreId set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 --期初结余 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 --本期增加 , SUM(PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10) AS 本期增加_进价金额 , SUM(PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10) AS 本期增加_预售金额 , SUM(RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10) AS 本期增加_销售金额 --本期减省 , SUM(PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9) AS 本期减少_进价金额 , SUM(PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9) AS 本期减少_预售金额 , SUM(RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9) AS 本期减少_销售金额 --期未结存 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 INTO #TEMP_JXCHZ FROM DSM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 LEFT JOIN BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @StoreId) and M.iYear=@FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03 SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 FROM #TEMP_JXCHZ DROP TABLE #TEMP_JXCHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 20301 2 3 4 5 6 7 8 9 10 11 12 ' where Code='HO.DSQuery.S.000021' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000023' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000023') begin --插入 Declare @Report_Id_410 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_410 out Declare @Report_Id_410_CateID int Set @Report_Id_410_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_410, 'HO.DSQuery.S.000023', '药库药品月结帐查询', Null, Null, @Report_Id_410_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:26:10', Null, ' 99BE7553A3D1F69848122CAC2054E030DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if object_id(''tempdb..#TEMP_YJZ'') is not null drop table #TEMP_YJZ SELECT M.iYear 年 , M.iMonth 月 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --2.药库进货单 , Quantity_2 药库进货单_数量 , PurchaseAmount_2 药库进货单_进价金额 , PresellAmount_2 药库进货单_预售金额 , RetailAmount_2 药库进货单_销售金额 --3.药库退货单 , Quantity_3 药库退货单_数量 , PurchaseAmount_3 药库退货单_进价金额 , PresellAmount_3 药库退货单_预售金额 , RetailAmount_3 药库退货单_销售金额 --4.药库出库单 , Quantity_4 药库出库单_数量 , PurchaseAmount_4 药库出库单_进价金额 , PresellAmount_4 药库出库单_预售金额 , RetailAmount_4 药库出库单_销售金额 --5.药库退库单 , Quantity_5 药库退库单_数量 , PurchaseAmount_5 药库退库单_进价金额 , PresellAmount_5 药库退库单_预售金额 , RetailAmount_5 药库退库单_销售金额 --6.药库损益单_益 , Quantity_6P 药库损益单_益_数量 , PurchaseAmount_6P 药库损益单_益_进价金额 , PresellAmount_6P 药库损益单_益_预售金额 , RetailAmount_6P 药库损益单_益_销售金额 --6.药库损益单_损 , Quantity_6L 药库损益单_损_数量 , PurchaseAmount_6L 药库损益单_损_进价金额 , PresellAmount_6L 药库损益单_损_预售金额 , RetailAmount_6L 药库损益单_损_销售金额 --制剂消耗 , Quantity_6LF 制剂消耗_数量 , PurchaseAmount_6LF 制剂消耗_进价金额 , PresellAmount_6LF 制剂消耗_预售金额 , RetailAmount_6LF 制剂消耗_销售金额 --7.药库盘点单_赢 , Quantity_7W 药库盘点单_盘赢_数量 , PurchaseAmount_7W 药库盘点单_盘赢_进价金额 , PresellAmount_7W 药库盘点单_盘赢_预售金额 , RetailAmount_7W 药库盘点单_盘赢_销售金额 --7.药库盘点单_亏 , Quantity_7L 药库盘点单_盘亏_数量 , PurchaseAmount_7L 药库盘点单_盘亏_进价金额 , PresellAmount_7L 药库盘点单_盘亏_预售金额 , RetailAmount_7L 药库盘点单_盘亏_销售金额 --8.药库调入单 , Quantity_8 药库调入单_数量 , PurchaseAmount_8 药库调入单_进价金额 , PresellAmount_8 药库调入单_预售金额 , RetailAmount_8 药库调入单_销售金额 --9.药库调出单 , Quantity_9 药库调出单_数量 , PurchaseAmount_9 药库调出单_进价金额 , PresellAmount_9 药库调出单_预售金额 , RetailAmount_9 药库调出单_销售金额 --10.进价差额 , PurchaseAmount_10 进价差额 --预售价差额 , PresellAmount_10 预售价差额 --11.销售价差额 , RetailAmount_10 销售价差额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , Y.BBE02 产地 , M.Maker 结帐人 , B.StartDate 起始日期 , B.EndDate 结止日期 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_YJZ FROM DSM2 M join DSM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药库进货单_数量, 药库进货单_进价金额, 药库进货单_预售金额, 药库进货单_销售金额 , 药库退货单_数量, 药库退货单_进价金额, 药库退货单_预售金额, 药库退货单_销售金额 , 药库出库单_数量, 药库出库单_进价金额, 药库出库单_预售金额, 药库出库单_销售金额 , 药库退库单_数量, 药库退库单_进价金额, 药库退库单_预售金额, 药库退库单_销售金额 , 药库损益单_益_数量, 药库损益单_益_进价金额, 药库损益单_益_预售金额, 药库损益单_益_销售金额 , 药库损益单_损_数量, 药库损益单_损_进价金额, 药库损益单_损_预售金额, 药库损益单_损_销售金额 , 制剂消耗_数量, 制剂消耗_进价金额, 制剂消耗_预售金额, 制剂消耗_销售金额 , 药库盘点单_盘赢_数量, 药库盘点单_盘赢_进价金额, 药库盘点单_盘赢_预售金额, 药库盘点单_盘赢_销售金额 , 药库盘点单_盘亏_数量, 药库盘点单_盘亏_进价金额, 药库盘点单_盘亏_预售金额, 药库盘点单_盘亏_销售金额 , 药库调入单_数量, 药库调入单_进价金额, 药库调入单_预售金额, 药库调入单_销售金额 , 药库调出单_数量, 药库调出单_进价金额, 药库调出单_预售金额, 药库调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 结帐人, 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期, 剂型, 药品分类 FROM #TEMP_YJZ DROP TABLE #TEMP_YJZDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if object_id(''tempdb..#TEMP_YJZHZ'') is not null drop table #TEMP_YJZHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 , SUM(PurchaseAmount_2) 药库进货单_进价金额 , SUM(PresellAmount_2) 药库进货单_预售金额 , SUM(RetailAmount_2) 药库进货单_销售金额 , SUM(PurchaseAmount_3) 药库退货单_进价金额 , SUM(PresellAmount_3) 药库退货单_预售金额 , SUM(RetailAmount_3) 药库退货单_销售金额 , SUM(PurchaseAmount_4) 药库出库单_进价金额 , SUM(PresellAmount_4) 药库出库单_预售金额 , SUM(RetailAmount_4) 药库出库单_销售金额 , SUM(PurchaseAmount_5) 药库退库单_进价金额 , SUM(PresellAmount_5) 药库退库单_预售金额 , SUM(RetailAmount_5) 药库退库单_销售金额 , SUM(PurchaseAmount_6P) 药库损益单_益_进价金额 , SUM(PresellAmount_6P) 药库损益单_益_预售金额 , SUM(RetailAmount_6P) 药库损益单_益_销售金额 , SUM(PurchaseAmount_6L) 药库损益单_损_进价金额 , SUM(PresellAmount_6L) 药库损益单_损_预售金额 , SUM(RetailAmount_6L) 药库损益单_损_销售金额 , SUM(PurchaseAmount_6LF) 制剂消耗_进价金额 , SUM(PresellAmount_6LF) 制剂消耗_预售金额 , SUM(RetailAmount_6LF) 制剂消耗_销售金额 , SUM(PurchaseAmount_7W) 药库盘点单_盘赢_进价金额 , SUM(PresellAmount_7W) 药库盘点单_盘赢_预售金额 , SUM(RetailAmount_7W) 药库盘点单_盘赢_销售金额 , SUM(PurchaseAmount_7L) 药库盘点单_盘亏_进价金额 , SUM(PresellAmount_7L) 药库盘点单_盘亏_预售金额 , SUM(RetailAmount_7L) 药库盘点单_盘亏_销售金额 , SUM(PurchaseAmount_8) 药库调入单_进价金额 , SUM(PresellAmount_8) 药库调入单_预售金额 , SUM(RetailAmount_8) 药库调入单_销售金额 , SUM(PurchaseAmount_9) 药库调出单_进价金额 , SUM(PresellAmount_9) 药库调出单_预售金额 , SUM(RetailAmount_9) 药库调出单_销售金额 , SUM(PurchaseAmount_10) 进价差额 , sum(PresellAmount_10) 预售价差额 , SUM(RetailAmount_10) 销售价差额 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 , B.StartDate 起始日期 , B.EndDate 结止日期 INTO #TEMP_YJZHZ FROM DSM2 M join DSM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03, B.StartDate, B.EndDate SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药库进货单_进价金额, 药库进货单_预售金额, 药库进货单_销售金额 , 药库退货单_进价金额, 药库退货单_预售金额, 药库退货单_销售金额 , 药库出库单_进价金额, 药库出库单_预售金额, 药库出库单_销售金额 , 药库退库单_进价金额, 药库退库单_预售金额, 药库退库单_销售金额 , 药库损益单_益_进价金额, 药库损益单_益_预售金额, 药库损益单_益_销售金额 , 药库损益单_损_进价金额, 药库损益单_损_预售金额, 药库损益单_损_销售金额 , 制剂消耗_进价金额, 制剂消耗_预售金额, 制剂消耗_销售金额 , 药库盘点单_盘赢_进价金额, 药库盘点单_盘赢_预售金额, 药库盘点单_盘赢_销售金额 , 药库盘点单_盘亏_进价金额, 药库盘点单_盘亏_预售金额, 药库盘点单_盘亏_销售金额 , 药库调入单_进价金额, 药库调入单_预售金额, 药库调入单_销售金额 , 药库调出单_进价金额, 药库调出单_预售金额, 药库调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期 FROM #TEMP_YJZHZ DROP TABLE #TEMP_YJZHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 99BE7553A3D1F69848122CAC2054E030DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if object_id(''tempdb..#TEMP_YJZ'') is not null drop table #TEMP_YJZ SELECT M.iYear 年 , M.iMonth 月 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --2.药库进货单 , Quantity_2 药库进货单_数量 , PurchaseAmount_2 药库进货单_进价金额 , PresellAmount_2 药库进货单_预售金额 , RetailAmount_2 药库进货单_销售金额 --3.药库退货单 , Quantity_3 药库退货单_数量 , PurchaseAmount_3 药库退货单_进价金额 , PresellAmount_3 药库退货单_预售金额 , RetailAmount_3 药库退货单_销售金额 --4.药库出库单 , Quantity_4 药库出库单_数量 , PurchaseAmount_4 药库出库单_进价金额 , PresellAmount_4 药库出库单_预售金额 , RetailAmount_4 药库出库单_销售金额 --5.药库退库单 , Quantity_5 药库退库单_数量 , PurchaseAmount_5 药库退库单_进价金额 , PresellAmount_5 药库退库单_预售金额 , RetailAmount_5 药库退库单_销售金额 --6.药库损益单_益 , Quantity_6P 药库损益单_益_数量 , PurchaseAmount_6P 药库损益单_益_进价金额 , PresellAmount_6P 药库损益单_益_预售金额 , RetailAmount_6P 药库损益单_益_销售金额 --6.药库损益单_损 , Quantity_6L 药库损益单_损_数量 , PurchaseAmount_6L 药库损益单_损_进价金额 , PresellAmount_6L 药库损益单_损_预售金额 , RetailAmount_6L 药库损益单_损_销售金额 --制剂消耗 , Quantity_6LF 制剂消耗_数量 , PurchaseAmount_6LF 制剂消耗_进价金额 , PresellAmount_6LF 制剂消耗_预售金额 , RetailAmount_6LF 制剂消耗_销售金额 --7.药库盘点单_赢 , Quantity_7W 药库盘点单_盘赢_数量 , PurchaseAmount_7W 药库盘点单_盘赢_进价金额 , PresellAmount_7W 药库盘点单_盘赢_预售金额 , RetailAmount_7W 药库盘点单_盘赢_销售金额 --7.药库盘点单_亏 , Quantity_7L 药库盘点单_盘亏_数量 , PurchaseAmount_7L 药库盘点单_盘亏_进价金额 , PresellAmount_7L 药库盘点单_盘亏_预售金额 , RetailAmount_7L 药库盘点单_盘亏_销售金额 --8.药库调入单 , Quantity_8 药库调入单_数量 , PurchaseAmount_8 药库调入单_进价金额 , PresellAmount_8 药库调入单_预售金额 , RetailAmount_8 药库调入单_销售金额 --9.药库调出单 , Quantity_9 药库调出单_数量 , PurchaseAmount_9 药库调出单_进价金额 , PresellAmount_9 药库调出单_预售金额 , RetailAmount_9 药库调出单_销售金额 --10.进价差额 , PurchaseAmount_10 进价差额 --预售价差额 , PresellAmount_10 预售价差额 --11.销售价差额 , RetailAmount_10 销售价差额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , Y.BBE02 产地 , M.Maker 结帐人 , B.StartDate 起始日期 , B.EndDate 结止日期 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_YJZ FROM DSM2 M join DSM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药库进货单_数量, 药库进货单_进价金额, 药库进货单_预售金额, 药库进货单_销售金额 , 药库退货单_数量, 药库退货单_进价金额, 药库退货单_预售金额, 药库退货单_销售金额 , 药库出库单_数量, 药库出库单_进价金额, 药库出库单_预售金额, 药库出库单_销售金额 , 药库退库单_数量, 药库退库单_进价金额, 药库退库单_预售金额, 药库退库单_销售金额 , 药库损益单_益_数量, 药库损益单_益_进价金额, 药库损益单_益_预售金额, 药库损益单_益_销售金额 , 药库损益单_损_数量, 药库损益单_损_进价金额, 药库损益单_损_预售金额, 药库损益单_损_销售金额 , 制剂消耗_数量, 制剂消耗_进价金额, 制剂消耗_预售金额, 制剂消耗_销售金额 , 药库盘点单_盘赢_数量, 药库盘点单_盘赢_进价金额, 药库盘点单_盘赢_预售金额, 药库盘点单_盘赢_销售金额 , 药库盘点单_盘亏_数量, 药库盘点单_盘亏_进价金额, 药库盘点单_盘亏_预售金额, 药库盘点单_盘亏_销售金额 , 药库调入单_数量, 药库调入单_进价金额, 药库调入单_预售金额, 药库调入单_销售金额 , 药库调出单_数量, 药库调出单_进价金额, 药库调出单_预售金额, 药库调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 结帐人, 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期, 剂型, 药品分类 FROM #TEMP_YJZ DROP TABLE #TEMP_YJZDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if object_id(''tempdb..#TEMP_YJZHZ'') is not null drop table #TEMP_YJZHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 , SUM(PurchaseAmount_2) 药库进货单_进价金额 , SUM(PresellAmount_2) 药库进货单_预售金额 , SUM(RetailAmount_2) 药库进货单_销售金额 , SUM(PurchaseAmount_3) 药库退货单_进价金额 , SUM(PresellAmount_3) 药库退货单_预售金额 , SUM(RetailAmount_3) 药库退货单_销售金额 , SUM(PurchaseAmount_4) 药库出库单_进价金额 , SUM(PresellAmount_4) 药库出库单_预售金额 , SUM(RetailAmount_4) 药库出库单_销售金额 , SUM(PurchaseAmount_5) 药库退库单_进价金额 , SUM(PresellAmount_5) 药库退库单_预售金额 , SUM(RetailAmount_5) 药库退库单_销售金额 , SUM(PurchaseAmount_6P) 药库损益单_益_进价金额 , SUM(PresellAmount_6P) 药库损益单_益_预售金额 , SUM(RetailAmount_6P) 药库损益单_益_销售金额 , SUM(PurchaseAmount_6L) 药库损益单_损_进价金额 , SUM(PresellAmount_6L) 药库损益单_损_预售金额 , SUM(RetailAmount_6L) 药库损益单_损_销售金额 , SUM(PurchaseAmount_6LF) 制剂消耗_进价金额 , SUM(PresellAmount_6LF) 制剂消耗_预售金额 , SUM(RetailAmount_6LF) 制剂消耗_销售金额 , SUM(PurchaseAmount_7W) 药库盘点单_盘赢_进价金额 , SUM(PresellAmount_7W) 药库盘点单_盘赢_预售金额 , SUM(RetailAmount_7W) 药库盘点单_盘赢_销售金额 , SUM(PurchaseAmount_7L) 药库盘点单_盘亏_进价金额 , SUM(PresellAmount_7L) 药库盘点单_盘亏_预售金额 , SUM(RetailAmount_7L) 药库盘点单_盘亏_销售金额 , SUM(PurchaseAmount_8) 药库调入单_进价金额 , SUM(PresellAmount_8) 药库调入单_预售金额 , SUM(RetailAmount_8) 药库调入单_销售金额 , SUM(PurchaseAmount_9) 药库调出单_进价金额 , SUM(PresellAmount_9) 药库调出单_预售金额 , SUM(RetailAmount_9) 药库调出单_销售金额 , SUM(PurchaseAmount_10) 进价差额 , sum(PresellAmount_10) 预售价差额 , SUM(RetailAmount_10) 销售价差额 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 , B.StartDate 起始日期 , B.EndDate 结止日期 INTO #TEMP_YJZHZ FROM DSM2 M join DSM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03, B.StartDate, B.EndDate SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药库进货单_进价金额, 药库进货单_预售金额, 药库进货单_销售金额 , 药库退货单_进价金额, 药库退货单_预售金额, 药库退货单_销售金额 , 药库出库单_进价金额, 药库出库单_预售金额, 药库出库单_销售金额 , 药库退库单_进价金额, 药库退库单_预售金额, 药库退库单_销售金额 , 药库损益单_益_进价金额, 药库损益单_益_预售金额, 药库损益单_益_销售金额 , 药库损益单_损_进价金额, 药库损益单_损_预售金额, 药库损益单_损_销售金额 , 制剂消耗_进价金额, 制剂消耗_预售金额, 制剂消耗_销售金额 , 药库盘点单_盘赢_进价金额, 药库盘点单_盘赢_预售金额, 药库盘点单_盘赢_销售金额 , 药库盘点单_盘亏_进价金额, 药库盘点单_盘亏_预售金额, 药库盘点单_盘亏_销售金额 , 药库调入单_进价金额, 药库调入单_预售金额, 药库调入单_销售金额 , 药库调出单_进价金额, 药库调出单_预售金额, 药库调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期 FROM #TEMP_YJZHZ DROP TABLE #TEMP_YJZHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;StoreId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ' where Code='HO.DSQuery.S.000023' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000027' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000027') begin --插入 Declare @Report_Id_417 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_417 out Declare @Report_Id_417_CateID int Set @Report_Id_417_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_417, 'HO.DSQuery.S.000027', '药库药品三级帐查询', Null, Null, @Report_Id_417_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:33:57', Null, ' 0DBD2CB1BAC25DEFD0C39DEFDFBE0E95DECLARE @BCK01 varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate DECLARE @DSM_Year int --月结帐 年 , @DSM_Month INT --月结帐 月 , @DSM_EndDate datetime --结帐结束日期 , @QC_Quantity numeric(18,6) --期初数量 , @QC_PurchaseAmount numeric(18,6) --期初进货金额 , @QC_PresellAmount numeric(18,6) --期初预售金额 , @xRowNum int , @Quantity numeric(18,6) , @PurchaseAmount numeric(18,6) , @PresellAmount numeric(18,6) SET @DSM_Year = 0 SET @DSM_Month= 0 SET @DSM_EndDate = ''1900-01-01 00:00:00'' SET @QC_Quantity = 0 SET @QC_PurchaseAmount = 0 SET @QC_PresellAmount = 0 CREATE TABLE #TEMP_DSMX( xRowNum int , xTypeID int , xTypeName varchar(300) , BillNO varchar(30) , BatchNO varchar(30) , AuditingDate datetime , PurchasePrice numeric(18,6) , PresellPrice numeric(18,6) , BQR_Quantity numeric(18,6) , BQR_PurchaseAmount numeric(18,6) , BQR_PresellAmount numeric(18,6) , BQC_Quantity numeric(18,6) , BQC_PurchaseAmount numeric(18,6) , BQC_PresellAmount numeric(18,6) , QM_Quantity numeric(18,6) , QM_PurchaseAmount numeric(18,6) , QM_PresellAmount numeric(18,6) , Join_ID int , Join_Name Varchar(30) ) --统计期初数据:从月结帐中提取数据 SELECT TOP 1 @DSM_Year=iYear, @DSM_Month=iMonth, @DSM_EndDate=EndDate FROM DSM1 WHERE DATEDIFF(ss, EndDate, @BeginDate) > 0 AND BCK01 = @BCK01 ORDER BY EndDate DESC IF @DSM_Year <> 0 AND @DSM_Month <> 0 SELECT TOP 1 @QC_Quantity=Quantity_E, @QC_PurchaseAmount=PurchaseAmount_E, @QC_PresellAmount=PresellAmount_E FROM DSM2 WHERE BCK01 = @BCK01 AND iYear = @DSM_Year AND iMonth = @DSM_Month AND BBY01=@BBY01 --统计期初数据:提取单据中数据 月结日做开始时间 SELECT @QC_Quantity = @QC_Quantity + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END),0) , @QC_PurchaseAmount = @QC_PurchaseAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END),0) , @QC_PresellAmount = @QC_PresellAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PresellPrice * Quantity *-1 ELSE PresellPrice * Quantity END),0) FROM V_DSL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(DAY, AuditingDate, @DSM_EndDate) < 0 AND DATEDIFF(SS, AuditingDate, @BeginDate) > 0 --统计本期的出入库数据,包含开始时刻的数据 SELECT CASE WHEN xTypeID=2 THEN ''(''+ Join_Name +'')''+''进货'' WHEN xTypeID=3 THEN ''(''+ Join_Name +'')''+''退货'' WHEN xTypeID=4 THEN ''(''+ Join_Name +'')''+''出库'' WHEN xTypeID=5 THEN ''(''+ Join_Name +'')''+''退库'' WHEN xTypeID=6 THEN ''(''+ Join_Name +'')''+''损益'' WHEN xTypeID=7 THEN ''(''+ Join_Name +'')''+''盘点'' WHEN xTypeID=8 THEN ''(''+ Join_Name +'')''+''调入'' WHEN xTypeID=9 THEN ''(''+ Join_Name +'')''+''调出'' WHEN xTypeID=10 THEN ''(''+ Join_Name +'')''+''调价'' END AS xTypeName , xTypeID , IDENTITY(int, 2,1) AS xRowNum , BatchNO , Quantity , PurchasePrice , PresellPrice , PurchaseAmount , PresellPrice * Quantity as PresellAmount , AuditingDate , BillNO INTO #TEMP_DSL FROM V_DSL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(SS, AuditingDate, @BeginDate) <= 0 AND DATEDIFF(SS, AuditingDate, @EndDate) >= 0 ORDER BY AuditingDate INSERT #TEMP_DSMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 0, ''上期结转'',null,null,null,1,null,null, null,null,null, null,null,null, ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DSL WHERE xTypeID <> 3 AND xTypeID <> 4 AND xTypeID <> 5 AND xTypeID <> 9 AND xTypeID <> 6 AND xTypeID <> 7 AND xTypeID <> 10 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, Quantity, PurchaseAmount, PresellAmount, null,null,null FROM #TEMP_DSL WHERE xTypeID = 3 OR xTypeID = 4 OR xTypeID = 9 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DSL WHERE xTypeID = 5 UNION --盘点单、损益单、调价单要单独设置 SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DSL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity >= 0 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DSL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity < 0 --计算各行数据的期末结存数 DECLARE DSL_List_Cursor CURSOR FOR SELECT xRowNum, ISNULL(BQR_Quantity,0)-ISNULL(BQC_Quantity,0) AS Quantity, ISNULL(BQR_PurchaseAmount,0)-ISNULL(BQC_PurchaseAmount,0) AS PurchaseAmount , ISNULL(BQR_PresellAmount,0)-ISNULL(BQC_PresellAmount,0) AS PresellAmount FROM #TEMP_DSMX WHERE xRowNum <> 1 ORDER BY xRowNum OPEN DSL_List_Cursor FETCH NEXT FROM DSL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount WHILE @@FETCH_STATUS = 0 BEGIN SET @QC_Quantity = ISNULL(@QC_Quantity,0) + @Quantity SET @QC_PurchaseAmount = ISNULL(@QC_PurchaseAmount,0) + @PurchaseAmount SET @QC_PresellAmount = ISNULL(@QC_PresellAmount,0) + @PresellAmount UPDATE M SET M.QM_Quantity=@QC_Quantity, M.QM_PurchaseAmount=@QC_PurchaseAmount, M.QM_PresellAmount=@QC_PresellAmount FROM #TEMP_DSMX M WHERE xRowNum=@xRowNum FETCH NEXT FROM DSL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount END CLOSE DSL_List_Cursor DEALLOCATE DSL_List_Cursor --合计 INSERT #TEMP_DSMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 100, ''本期合计'',null,null,null,MAX(xRowNum) + 1,null,null, SUM(BQR_Quantity), SUM(BQR_PurchaseAmount), SUM(BQR_PresellAmount), SUM(BQC_Quantity), SUM(BQC_PurchaseAmount), SUM(BQC_PresellAmount), ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) FROM #TEMP_DSMX SELECT --@BBY01 AS 药品ID,@BCK01 AS 药库ID, xRowNum AS 序号 ,AuditingDate AS 日期 --,xTypeID AS 单据类型 ,BillNo AS 凭证号 ,xTypeName AS 摘要 ,PurchasePrice AS 进货价 ,PresellPrice AS 预售价 ,BQR_Quantity AS 本期_增加数量 ,BQR_PurchaseAmount AS 本期_增加进价金额 ,BQR_PresellAmount AS 本期_增加预售金额 ,BQC_Quantity AS 本期_减少数量 ,BQC_PurchaseAmount AS 本期_减少进价金额 ,BQC_PresellAmount AS 本期_减少预售金额 ,QM_Quantity AS 期末_数量 ,QM_PurchaseAmount AS 期末_进价金额 ,QM_PresellAmount AS 期末_预售金额 ,BatchNO AS 批号 FROM #TEMP_DSMX order by xRowNum drop table #TEMP_DSL drop table #TEMP_DSMXMyClassName=TFastLineSeries LinePen.Color=255 Marks.Callout.Brush.Color=0 Marks.Visible=False Title=三级明细帐线图 XLabelsSource=日期 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=期末_数量<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 0DBD2CB1BAC25DEFD0C39DEFDFBE0E95DECLARE @BCK01 varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate DECLARE @DSM_Year int --月结帐 年 , @DSM_Month INT --月结帐 月 , @DSM_EndDate datetime --结帐结束日期 , @QC_Quantity numeric(18,6) --期初数量 , @QC_PurchaseAmount numeric(18,6) --期初进货金额 , @QC_PresellAmount numeric(18,6) --期初预售金额 , @xRowNum int , @Quantity numeric(18,6) , @PurchaseAmount numeric(18,6) , @PresellAmount numeric(18,6) SET @DSM_Year = 0 SET @DSM_Month= 0 SET @DSM_EndDate = ''1900-01-01 00:00:00'' SET @QC_Quantity = 0 SET @QC_PurchaseAmount = 0 SET @QC_PresellAmount = 0 CREATE TABLE #TEMP_DSMX( xRowNum int , xTypeID int , xTypeName varchar(300) , BillNO varchar(30) , BatchNO varchar(30) , AuditingDate datetime , PurchasePrice numeric(18,6) , PresellPrice numeric(18,6) , BQR_Quantity numeric(18,6) , BQR_PurchaseAmount numeric(18,6) , BQR_PresellAmount numeric(18,6) , BQC_Quantity numeric(18,6) , BQC_PurchaseAmount numeric(18,6) , BQC_PresellAmount numeric(18,6) , QM_Quantity numeric(18,6) , QM_PurchaseAmount numeric(18,6) , QM_PresellAmount numeric(18,6) , Join_ID int , Join_Name Varchar(30) ) --统计期初数据:从月结帐中提取数据 SELECT TOP 1 @DSM_Year=iYear, @DSM_Month=iMonth, @DSM_EndDate=EndDate FROM DSM1 WHERE DATEDIFF(ss, EndDate, @BeginDate) > 0 AND BCK01 = @BCK01 ORDER BY EndDate DESC IF @DSM_Year <> 0 AND @DSM_Month <> 0 SELECT TOP 1 @QC_Quantity=Quantity_E, @QC_PurchaseAmount=PurchaseAmount_E, @QC_PresellAmount=PresellAmount_E FROM DSM2 WHERE BCK01 = @BCK01 AND iYear = @DSM_Year AND iMonth = @DSM_Month AND BBY01=@BBY01 --统计期初数据:提取单据中数据 月结日做开始时间 SELECT @QC_Quantity = @QC_Quantity + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END),0) , @QC_PurchaseAmount = @QC_PurchaseAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END),0) , @QC_PresellAmount = @QC_PresellAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PresellPrice * Quantity *-1 ELSE PresellPrice * Quantity END),0) FROM V_DSL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(DAY, AuditingDate, @DSM_EndDate) < 0 AND DATEDIFF(SS, AuditingDate, @BeginDate) > 0 --统计本期的出入库数据,包含开始时刻的数据 SELECT CASE WHEN xTypeID=2 THEN ''(''+ Join_Name +'')''+''进货'' WHEN xTypeID=3 THEN ''(''+ Join_Name +'')''+''退货'' WHEN xTypeID=4 THEN ''(''+ Join_Name +'')''+''出库'' WHEN xTypeID=5 THEN ''(''+ Join_Name +'')''+''退库'' WHEN xTypeID=6 THEN ''(''+ Join_Name +'')''+''损益'' WHEN xTypeID=7 THEN ''(''+ Join_Name +'')''+''盘点'' WHEN xTypeID=8 THEN ''(''+ Join_Name +'')''+''调入'' WHEN xTypeID=9 THEN ''(''+ Join_Name +'')''+''调出'' WHEN xTypeID=10 THEN ''(''+ Join_Name +'')''+''调价'' END AS xTypeName , xTypeID , IDENTITY(int, 2,1) AS xRowNum , BatchNO , Quantity , PurchasePrice , PresellPrice , PurchaseAmount , PresellPrice * Quantity as PresellAmount , AuditingDate , BillNO INTO #TEMP_DSL FROM V_DSL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(SS, AuditingDate, @BeginDate) <= 0 AND DATEDIFF(SS, AuditingDate, @EndDate) >= 0 ORDER BY AuditingDate INSERT #TEMP_DSMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 0, ''上期结转'',null,null,null,1,null,null, null,null,null, null,null,null, ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DSL WHERE xTypeID <> 3 AND xTypeID <> 4 AND xTypeID <> 5 AND xTypeID <> 9 AND xTypeID <> 6 AND xTypeID <> 7 AND xTypeID <> 10 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, Quantity, PurchaseAmount, PresellAmount, null,null,null FROM #TEMP_DSL WHERE xTypeID = 3 OR xTypeID = 4 OR xTypeID = 9 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DSL WHERE xTypeID = 5 UNION --盘点单、损益单、调价单要单独设置 SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DSL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity >= 0 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DSL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity < 0 --计算各行数据的期末结存数 DECLARE DSL_List_Cursor CURSOR FOR SELECT xRowNum, ISNULL(BQR_Quantity,0)-ISNULL(BQC_Quantity,0) AS Quantity, ISNULL(BQR_PurchaseAmount,0)-ISNULL(BQC_PurchaseAmount,0) AS PurchaseAmount , ISNULL(BQR_PresellAmount,0)-ISNULL(BQC_PresellAmount,0) AS PresellAmount FROM #TEMP_DSMX WHERE xRowNum <> 1 ORDER BY xRowNum OPEN DSL_List_Cursor FETCH NEXT FROM DSL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount WHILE @@FETCH_STATUS = 0 BEGIN SET @QC_Quantity = ISNULL(@QC_Quantity,0) + @Quantity SET @QC_PurchaseAmount = ISNULL(@QC_PurchaseAmount,0) + @PurchaseAmount SET @QC_PresellAmount = ISNULL(@QC_PresellAmount,0) + @PresellAmount UPDATE M SET M.QM_Quantity=@QC_Quantity, M.QM_PurchaseAmount=@QC_PurchaseAmount, M.QM_PresellAmount=@QC_PresellAmount FROM #TEMP_DSMX M WHERE xRowNum=@xRowNum FETCH NEXT FROM DSL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount END CLOSE DSL_List_Cursor DEALLOCATE DSL_List_Cursor --合计 INSERT #TEMP_DSMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 100, ''本期合计'',null,null,null,MAX(xRowNum) + 1,null,null, SUM(BQR_Quantity), SUM(BQR_PurchaseAmount), SUM(BQR_PresellAmount), SUM(BQC_Quantity), SUM(BQC_PurchaseAmount), SUM(BQC_PresellAmount), ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) FROM #TEMP_DSMX SELECT --@BBY01 AS 药品ID,@BCK01 AS 药库ID, xRowNum AS 序号 ,AuditingDate AS 日期 --,xTypeID AS 单据类型 ,BillNo AS 凭证号 ,xTypeName AS 摘要 ,PurchasePrice AS 进货价 ,PresellPrice AS 预售价 ,BQR_Quantity AS 本期_增加数量 ,BQR_PurchaseAmount AS 本期_增加进价金额 ,BQR_PresellAmount AS 本期_增加预售金额 ,BQC_Quantity AS 本期_减少数量 ,BQC_PurchaseAmount AS 本期_减少进价金额 ,BQC_PresellAmount AS 本期_减少预售金额 ,QM_Quantity AS 期末_数量 ,QM_PurchaseAmount AS 期末_进价金额 ,QM_PresellAmount AS 期末_预售金额 ,BatchNO AS 批号 FROM #TEMP_DSMX order by xRowNum drop table #TEMP_DSL drop table #TEMP_DSMXMyClassName=TFastLineSeries LinePen.Color=255 Marks.Callout.Brush.Color=0 Marks.Visible=False Title=三级明细帐线图 XLabelsSource=日期 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=期末_数量<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药库 WHEN 56 THEN ''2'' --成药库 WHEN 55 THEN ''3'' --中药库 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 join BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000027' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000029' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000029') begin --插入 Declare @Report_Id_660 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_660 out Declare @Report_Id_660_CateID int Set @Report_Id_660_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_660, 'HO.DSQuery.S.000029', '药库药品结账统计表', Null, Null, @Report_Id_660_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2012-01-12 15:56:45', Null, ' ED70B1A033CDD72241F880D2674FDAE1DECLARE @PharmacyId varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @PharmacyId= :PharmacyId set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate SELECT CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END 项目名称 , SUM(l.Quantity*s.BuyPrice) 往来金额 , sum(L.PurchaseAmount) 进价金额 , sum(L.PresellPrice * L.Quantity) 零价金额 INTO #TMP_DPL1 FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE (L.BCK01 = @PharmacyId) AND L.AuditingDate between @BeginDate and @EndDate AND (L.BBY01 = @BBY01 or @BBY01='''' ) Group by CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END order by charindex(CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END,''进货 退货 报升 报损 盘盈 盘亏 出库 退库 调入 调出'') --返回结果 SELECT ''期初结存'' 项目名称 ,convert(numeric(18,2),往来金额) 往来金额 , convert(numeric(18,2),PurchaseAmount) 进价金额 , convert(numeric(18,2),PresellAmount) 零价金额 , convert(numeric(18,2),K.PresellAmount-k.PurchaseAmount) 进零差额 FROM (SELECT SUM(CASE WHEN l.xTypeID in (3,4,9) THEN -1*l.Quantity*s.BuyPrice else l.Quantity*s.BuyPrice end) 往来金额 , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.Quantity*-1 ELSE l.Quantity END) LastQuantity , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.PurchaseAmount*-1 ELSE l.PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN (l.PresellPrice * l.Quantity) *-1 ELSE (l.PresellPrice * l.Quantity) END) PresellAmount FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE l.BCK01 = @PharmacyId AND (L.BBY01 = @BBY01 or @BBY01='''' ) and DATEDIFF(minute, AuditingDate, @BeginDate) >= 0 ) K union all SELECT 项目名称 ,convert(numeric(18,2),往来金额) ,convert(numeric(18,2),进价金额) ,convert(numeric(18,2),零价金额) ,convert(numeric(18,2),零价金额-进价金额) 进零差额 FROM #TMP_DPL1 union all SELECT ''本期结存'' 项目名称 ,convert(numeric(18,2),往来金额) 往来金额 , convert(numeric(18,2),PurchaseAmount) 进价金额 , convert(numeric(18,2),PresellAmount) 零价金额 , convert(numeric(18,2),K.PresellAmount-k.PurchaseAmount) 进零差额 FROM (SELECT SUM(CASE WHEN l.xTypeID in (3,4,9) THEN -1*l.Quantity*s.BuyPrice else l.Quantity*s.BuyPrice end) 往来金额 , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.Quantity*-1 ELSE l.Quantity END) LastQuantity , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.PurchaseAmount*-1 ELSE l.PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN (l.PresellPrice * l.Quantity) *-1 ELSE (l.PresellPrice * l.Quantity) END) PresellAmount FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE l.BCK01 = @PharmacyId AND (L.BBY01 = @BBY01 or @BBY01='''' ) and DATEDIFF(minute, AuditingDate, @EndDate) >= 0 ) K DROP TABLE #TMP_DPL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药 WHEN 56 THEN ''2'' --成药 WHEN 55 THEN ''3'' --中药 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 0, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' ED70B1A033CDD72241F880D2674FDAE1DECLARE @PharmacyId varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @PharmacyId= :PharmacyId set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate SELECT CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END 项目名称 , SUM(l.Quantity*s.BuyPrice) 往来金额 , sum(L.PurchaseAmount) 进价金额 , sum(L.PresellPrice * L.Quantity) 零价金额 INTO #TMP_DPL1 FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE (L.BCK01 = @PharmacyId) AND L.AuditingDate between @BeginDate and @EndDate AND (L.BBY01 = @BBY01 or @BBY01='''' ) Group by CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END order by charindex(CASE L.xTypeID WHEN 2 THEN ''进货'' WHEN 3 THEN ''退货'' WHEN 4 THEN ''出库'' WHEN 5 THEN ''退库'' WHEN 6 THEN case when l.PurchaseAmount>0 then ''报升'' else ''报损'' end WHEN 7 THEN case when l.PurchaseAmount>0 then ''盘盈'' else ''盘亏'' end WHEN 8 THEN ''调入'' WHEN 9 THEN ''调出'' ELSE '''' END,''进货 退货 报升 报损 盘盈 盘亏 出库 退库 调入 调出'') --返回结果 SELECT ''期初结存'' 项目名称 ,convert(numeric(18,2),往来金额) 往来金额 , convert(numeric(18,2),PurchaseAmount) 进价金额 , convert(numeric(18,2),PresellAmount) 零价金额 , convert(numeric(18,2),K.PresellAmount-k.PurchaseAmount) 进零差额 FROM (SELECT SUM(CASE WHEN l.xTypeID in (3,4,9) THEN -1*l.Quantity*s.BuyPrice else l.Quantity*s.BuyPrice end) 往来金额 , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.Quantity*-1 ELSE l.Quantity END) LastQuantity , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.PurchaseAmount*-1 ELSE l.PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN (l.PresellPrice * l.Quantity) *-1 ELSE (l.PresellPrice * l.Quantity) END) PresellAmount FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE l.BCK01 = @PharmacyId AND (L.BBY01 = @BBY01 or @BBY01='''' ) and DATEDIFF(minute, AuditingDate, @BeginDate) >= 0 ) K union all SELECT 项目名称 ,convert(numeric(18,2),往来金额) ,convert(numeric(18,2),进价金额) ,convert(numeric(18,2),零价金额) ,convert(numeric(18,2),零价金额-进价金额) 进零差额 FROM #TMP_DPL1 union all SELECT ''本期结存'' 项目名称 ,convert(numeric(18,2),往来金额) 往来金额 , convert(numeric(18,2),PurchaseAmount) 进价金额 , convert(numeric(18,2),PresellAmount) 零价金额 , convert(numeric(18,2),K.PresellAmount-k.PurchaseAmount) 进零差额 FROM (SELECT SUM(CASE WHEN l.xTypeID in (3,4,9) THEN -1*l.Quantity*s.BuyPrice else l.Quantity*s.BuyPrice end) 往来金额 , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.Quantity*-1 ELSE l.Quantity END) LastQuantity , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN l.PurchaseAmount*-1 ELSE l.PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN l.xTypeID in (3,4,9) THEN (l.PresellPrice * l.Quantity) *-1 ELSE (l.PresellPrice * l.Quantity) END) PresellAmount FROM V_DSL1 L left join DSB2 s on L.DSK_ID=s.DSK_ID WHERE l.BCK01 = @PharmacyId AND (L.BBY01 = @BBY01 or @BBY01='''' ) and DATEDIFF(minute, AuditingDate, @EndDate) >= 0 ) K DROP TABLE #TMP_DPL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, --不得改变列顺序 CASE WHEN 成药库 &gt; 0 THEN 1 ELSE 西药库 END + 中药库 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药库 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药库 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药库 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''54'' and z.BCK01 = k.BCK01),0) AS ''西药库'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''56'' and z.BCK01 = k.BCK01),0) AS ''成药库'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''55'' and z.BCK01 = k.BCK01),0) AS ''中药库'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''54'',''55'',''56'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 54 THEN ''1'' --西药 WHEN 56 THEN ''2'' --成药 WHEN 55 THEN ''3'' --中药 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000029' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DSQuery.S.000030' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DSQuery.S.000030') begin --插入 Declare @Report_Id_804 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_804 out Declare @Report_Id_804_CateID int Set @Report_Id_804_CateID = (select id from Report_Categories where code='HIS.11') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_804, 'HO.DSQuery.S.000030', '药品调价差额查询', Null, Null, @Report_Id_804_CateID, 1, 3, 100, 0, Null, '2013-01-23 11:05:17', '2013-01-23 11:56:18', Null, ' 029D22DCB74AB057065BB1C0A592F4DEDECLARE @BBY05 varchar(50) set @BBY05 = :BBY05 if OBJECT_ID(''tempdb..#tmpDSK2'') is not null drop table #tmpDSK2 select D.BCK03, A.BBY01, B.BBY05, B.BBY06, C.BatchNo, A.DSK1_ID, A.PurchasePrice, A.PresellPrice, A.DiffQuantity, A.DiffAmount, A.sysdate into #tmpDSK2 from DSK2 A join BBY1 B on B.BBY01 = A.BBY01 join DSK1 C on C.ID = A.DSK1_ID JOIN BCK1 D ON D.BCK01 = C.BCK01 where B.BBY05 like @BBY05 + ''%'' union select D.BCK03, A.BBY01, B.BBY05, B.BBY06, C.BatchNo, A.DPK1_ID, A.PurchasePrice, A.PresellPrice, A.DiffQuantity, A.DiffAmount, A.sysdate from DPK2 A JOIN BBY1 B ON B.BBY01 = A.BBY01 JOIN DPK1 C ON C.ID = A.DPK1_ID JOIN BCK1 D ON D.BCK01 = C.BCK01 WHERE B.BBY05 LIKE @BBY05 + ''%'' select BCK03 库房, BBY05 品名, BBY06 规格, BatchNo 批号, DSK1_ID 入库批次, PurchasePrice 进货价, PresellPrice 预售价, DiffQuantity 剩余库存, DiffAmount 进货差额, sysdate 变价时间 from #tmpDSK2 if OBJECT_ID(''tempdb..#tmpDSK2'') is not null drop table #tmpDSK2MyClassName=TBarSeries Gradient.Direction=gdTopBottom Marks.Callout.Brush.Color=0 Marks.Visible=True XLabelsSource=品名 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=库存数量<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid UseW="1"><Sql>SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join BCL1 L ON L.BBY01 = Y.BBY01 where exists(select * from DSK2 A where A.BBY01 = Y.BBY01)</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药库查询', 1, 0, Null, 1, Null) end else --更新 begin update Report_Objects set Config=' 029D22DCB74AB057065BB1C0A592F4DEDECLARE @BBY05 varchar(50) set @BBY05 = :BBY05 if OBJECT_ID(''tempdb..#tmpDSK2'') is not null drop table #tmpDSK2 select D.BCK03, A.BBY01, B.BBY05, B.BBY06, C.BatchNo, A.DSK1_ID, A.PurchasePrice, A.PresellPrice, A.DiffQuantity, A.DiffAmount, A.sysdate into #tmpDSK2 from DSK2 A join BBY1 B on B.BBY01 = A.BBY01 join DSK1 C on C.ID = A.DSK1_ID JOIN BCK1 D ON D.BCK01 = C.BCK01 where B.BBY05 like @BBY05 + ''%'' union select D.BCK03, A.BBY01, B.BBY05, B.BBY06, C.BatchNo, A.DPK1_ID, A.PurchasePrice, A.PresellPrice, A.DiffQuantity, A.DiffAmount, A.sysdate from DPK2 A JOIN BBY1 B ON B.BBY01 = A.BBY01 JOIN DPK1 C ON C.ID = A.DPK1_ID JOIN BCK1 D ON D.BCK01 = C.BCK01 WHERE B.BBY05 LIKE @BBY05 + ''%'' select BCK03 库房, BBY05 品名, BBY06 规格, BatchNo 批号, DSK1_ID 入库批次, PurchasePrice 进货价, PresellPrice 预售价, DiffQuantity 剩余库存, DiffAmount 进货差额, sysdate 变价时间 from #tmpDSK2 if OBJECT_ID(''tempdb..#tmpDSK2'') is not null drop table #tmpDSK2MyClassName=TBarSeries Gradient.Direction=gdTopBottom Marks.Callout.Brush.Color=0 Marks.Visible=True XLabelsSource=品名 XValues.Order=loAscending YValues.Order=loNone YValues.ValueSource=库存数量<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid UseW="1"><Sql>SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join BCL1 L ON L.BBY01 = Y.BBY01 where exists(select * from DSK2 A where A.BBY01 = Y.BBY01)</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DSQuery.S.000030' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000005' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000005') begin --插入 Declare @Report_Id_418 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_418 out Declare @Report_Id_418_CateID int Set @Report_Id_418_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_418, 'HO.DPQuery.S.000005', '药房药品库存余额查询', Null, Null, @Report_Id_418_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:42:22', Null, ' 33FFAF9532240FD885D79D1D278E603CDECLARE @BCK01 varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @BCK01= :BCK01 set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , Y.BBY08 基本单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , S.AAS02 偿付类别 , case when T.BBT08 >=1 then ''是'' else ''否'' end 基本药物 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice*Quantity)*-1 ELSE (PresellPrice*Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM V_DPL1 A WHERE BCK01 = @BCK01 GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join aas1 s on y.aas01=s.aas01 WHERE (K.BCK01 = @BCK01) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity order by AAS02DECLARE @BCK01 varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @BCK01= :BCK01 set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.ID 批次Id , K.LastQuantity 库存数量 , K.PurchasePrice 进货价 , K.PurchasePrice * K.LastQuantity 进价金额 , K.PresellPrice 预售价 , K.PresellPrice * K.LastQuantity 预售金额 , Y.BBY25 销售价 , K.LastQuantity * Y.BBY25 销售金额 , G.BAG23 当前成本价 , K.LastQuantity 基本单位数量 , Y.BBY08 基本单位 , K.ExpiryDate 有效期至 , K.ProduceDate 生产日期 , B.Manufacturer 产地 , B.SanctionCode 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , H.BBH03 供应商编号 , H.BBH04 供应商名称 , K.xTypeID 单据种类Id , K.TradeDate 交易时间 , Y.BBY31 有效时间 FROM DPK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BBH1 H ON H.BBH01 = K.BBH01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DSB2 B on K.DSK_ID=B.DSK_ID WHERE (K.BCK01 = @BCK01) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 33FFAF9532240FD885D79D1D278E603CDECLARE @BCK01 varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @BCK01= :BCK01 set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , Y.BBY08 基本单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25*G.BAG09 当前销售价 , G.BAG23*G.BAG09 当前成本价 , S.AAS02 偿付类别 , case when T.BBT08 >=1 then ''是'' else ''否'' end 基本药物 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , Y.BBY31 有效时间 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice*Quantity)*-1 ELSE (PresellPrice*Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM V_DPL1 A WHERE BCK01 = @BCK01 GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join aas1 s on y.aas01=s.aas01 WHERE (K.BCK01 = @BCK01) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity order by AAS02DECLARE @BCK01 varchar(10) , @Quantity varchar(20) , @BBY05 varchar(50) set @BCK01= :BCK01 set @Quantity = :Quantity set @BBY05 = :BBY05 SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.ID 批次Id , K.LastQuantity 库存数量 , K.PurchasePrice 进货价 , K.PurchasePrice * K.LastQuantity 进价金额 , K.PresellPrice 预售价 , K.PresellPrice * K.LastQuantity 预售金额 , Y.BBY25 销售价 , K.LastQuantity * Y.BBY25 销售金额 , G.BAG23 当前成本价 , K.LastQuantity 基本单位数量 , Y.BBY08 基本单位 , K.ExpiryDate 有效期至 , K.ProduceDate 生产日期 , B.Manufacturer 产地 , B.SanctionCode 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , H.BBH03 供应商编号 , H.BBH04 供应商名称 , K.xTypeID 单据种类Id , K.TradeDate 交易时间 , Y.BBY31 有效时间 FROM DPK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BBH1 H ON H.BBH01 = K.BBH01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DSB2 B on K.DSK_ID=B.DSK_ID WHERE (K.BCK01 = @BCK01) and Y.BBY05 LIKE @BBY05+''%'' and K.LastQuantity <> @Quantity<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000005' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000006' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000006') begin --插入 Declare @Report_Id_419 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_419 out Declare @Report_Id_419_CateID int Set @Report_Id_419_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_419, 'HO.DPQuery.S.000006', '药房药品历史库存查询', Null, Null, @Report_Id_419_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:42:48', Null, ' D2608CF7B898C7FF92AA755354B90DD5DECLARE @BCK01 varchar(10) , @EndDate Datetime , @BBY05 varchar(50) set @BCK01= :BCK01 set @EndDate= :EndDate set @BBY05= :BBY05 if OBJECT_ID(''tempdb..#DPK2'') is not null drop table #DPK2 select * into #DPK2 from ( select ROW_NUMBER() over(partition by BBY01, DPK1_ID order by sysdate) as xRow, * from DPK2 where sysdate >= @EndDate ) A where A.xRow = 1 if OBJECT_ID(''tempdb..#DPL1'') is not null drop table #DPL1 select A.* into #DPL1 from V_DPL1 A join BBY1 Y on Y.BBY01 = A.BBY01 where A.BCK01 = @BCK01 and A.AuditingDate <= @EndDate and Y.BBY05 LIKE @BBY05+''%'' update A set A.PresellPrice = B.PresellPrice from #DPL1 A join #DPK2 B on B.BBY01 = A.BBY01 and B.DPK1_ID = A.DPK_ID SELECT Y.BBY04 编号 , Y.BBY05 品名 , Y.BBY06 规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25 当前销售价 , G.BAG23 当前成本价 , @EndDate 截止时间 , T.BAP02 剂型 , Y.BBE02 产地 , G.BAG15 批准文号 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM #DPL1 A GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @BCK01) DROP TABLE #DPK2 DROP TABLE #DPL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 </Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' D2608CF7B898C7FF92AA755354B90DD5DECLARE @BCK01 varchar(10) , @EndDate Datetime , @BBY05 varchar(50) set @BCK01= :BCK01 set @EndDate= :EndDate set @BBY05= :BBY05 if OBJECT_ID(''tempdb..#DPK2'') is not null drop table #DPK2 select * into #DPK2 from ( select ROW_NUMBER() over(partition by BBY01, DPK1_ID order by sysdate) as xRow, * from DPK2 where sysdate >= @EndDate ) A where A.xRow = 1 if OBJECT_ID(''tempdb..#DPL1'') is not null drop table #DPL1 select A.* into #DPL1 from V_DPL1 A join BBY1 Y on Y.BBY01 = A.BBY01 where A.BCK01 = @BCK01 and A.AuditingDate <= @EndDate and Y.BBY05 LIKE @BBY05+''%'' update A set A.PresellPrice = B.PresellPrice from #DPL1 A join #DPK2 B on B.BBY01 = A.BBY01 and B.DPK1_ID = A.DPK_ID SELECT Y.BBY04 编号 , Y.BBY05 品名 , Y.BBY06 规格 , G.BDG02C 单位 , K.LastQuantity 库存数量 , K.PurchaseAmount 进价金额 , K.PresellAmount 预售金额 , K.RetailAmount 销售金额 , Y.BBY25 当前销售价 , G.BAG23 当前成本价 , @EndDate 截止时间 , T.BAP02 剂型 , Y.BBE02 产地 , G.BAG15 批准文号 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01 , SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END) LastQuantity , SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END) PurchaseAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity)*-1 ELSE (PresellPrice * Quantity) END) PresellAmount , SUM(CASE WHEN xTypeID in (3,4,9) THEN RetailAmount*-1 ELSE RetailAmount END) RetailAmount FROM #DPL1 A GROUP BY BCK01, BBY01 ) K join BBY1 Y ON Y.BBY01 = K.BBY01 AND Y.BBY31 <> ''1900-01-01'' join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = @BCK01) DROP TABLE #DPK2 DROP TABLE #DPL1<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 </Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000006' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000013' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000013') begin --插入 Declare @Report_Id_420 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_420 out Declare @Report_Id_420_CateID int Set @Report_Id_420_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_420, 'HO.DPQuery.S.000013', '药房药品有效期查询', Null, Null, @Report_Id_420_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:43:32', Null, ' DD0D17DC4A2A174C62B2A11947884EDADECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @ExpiryBegin varchar(20) , @ExpiryEnd varchar(20) set @BCK01= :BCK01 set @BBY05= :BBY05 set @ExpiryBegin= :ExpiryBegin set @ExpiryEnd= :ExpiryEnd SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , K.PurchasePrice 进货价 , Y.BBY25 当前销售价 , G.BAG23 当前成本价 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM DPK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE K.LastQuantity > 0 and K.BCK01 = @BCK01 and Y.BBY05 like @BBY05 + ''%'' and K.ExpiryDate between @ExpiryBegin and @ExpiryEnd<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' DD0D17DC4A2A174C62B2A11947884EDADECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @ExpiryBegin varchar(20) , @ExpiryEnd varchar(20) set @BCK01= :BCK01 set @BBY05= :BBY05 set @ExpiryBegin= :ExpiryBegin set @ExpiryEnd= :ExpiryEnd SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.BatchNO 产品批号 , K.LastQuantity 库存数量 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , K.PurchasePrice 进货价 , Y.BBY25 当前销售价 , G.BAG23 当前成本价 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM DPK1 K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON L.BCK01 = K.BCK01 and L.BBY01 = Y.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE K.LastQuantity > 0 and K.BCK01 = @BCK01 and Y.BBY05 like @BBY05 + ''%'' and K.ExpiryDate between @ExpiryBegin and @ExpiryEnd<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000013' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000014' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000014') begin --插入 Declare @Report_Id_421 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_421 out Declare @Report_Id_421_CateID int Set @Report_Id_421_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_421, 'HO.DPQuery.S.000014', '药房药品库存预警查询', Null, Null, @Report_Id_421_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:55:50', Null, ' 6D67DD44BF363CFCFB24C006614A1635DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @Relation int set @BCK01= :BCK01 set @BBY05= :BBY05 set @Relation= :Relation DECLARE @sql varchar(8000) SET @sql = '' SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.LSQty 库存数量 , L.BAL04 限量_库存上限 , L.BAL05 限量_库存下限 , CASE WHEN K.LSQty < ISNULL(L.BAL05, 0) THEN ISNULL(L.BAL05, 0) - K.LSQty END 警戒线_低于警戒线 , CASE WHEN K.LSQty > ISNULL(L.BAL04, 0) THEN K.LSQty - ISNULL(L.BAL04, 0) END 警戒线_高于警戒线 , CASE WHEN K.LSQty < ISNULL(L.BAL04, 0) THEN ISNULL(L.BAL04, 0) - K.LSQty END 警戒线_距最高限差 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01, Unit, SUM(LastQuantity) LSQty, CAST(SUM(LastQuantity/PackSize) AS NUMERIC(18,6)) LSQty2 FROM DPK1 GROUP BY BCK01, BBY01, Unit ) K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON K.BCK01 = L.BCK01 and Y.BBY01 = L.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = '' + @BCK01 + '') and Y.BBY05 like '''''' + @BBY05 + ''%'''''' if @Relation = 1 set @sql = @sql + '' and K.LSQty < L.BAL05'' if @Relation = 2 set @sql = @sql + '' and K.LSQty > L.BAL04'' exec(@sql)<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 0=任意 1=低库存预警 2=高库存预警 ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 6D67DD44BF363CFCFB24C006614A1635DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @Relation int set @BCK01= :BCK01 set @BBY05= :BBY05 set @Relation= :Relation DECLARE @sql varchar(8000) SET @sql = '' SELECT Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , K.Unit 单位 , K.LSQty 库存数量 , L.BAL04 限量_库存上限 , L.BAL05 限量_库存下限 , CASE WHEN K.LSQty < ISNULL(L.BAL05, 0) THEN ISNULL(L.BAL05, 0) - K.LSQty END 警戒线_低于警戒线 , CASE WHEN K.LSQty > ISNULL(L.BAL04, 0) THEN K.LSQty - ISNULL(L.BAL04, 0) END 警戒线_高于警戒线 , CASE WHEN K.LSQty < ISNULL(L.BAL04, 0) THEN ISNULL(L.BAL04, 0) - K.LSQty END 警戒线_距最高限差 , Y.BBE02 产地 , G.BAG15 批准文号 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 FROM (SELECT BCK01, BBY01, Unit, SUM(LastQuantity) LSQty, CAST(SUM(LastQuantity/PackSize) AS NUMERIC(18,6)) LSQty2 FROM DPK1 GROUP BY BCK01, BBY01, Unit ) K join BBY1 Y ON Y.BBY01 = K.BBY01 join BAG1 G ON G.BBY01 = K.BBY01 left join BAL1 L ON K.BCK01 = L.BCK01 and Y.BBY01 = L.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (K.BCK01 = '' + @BCK01 + '') and Y.BBY05 like '''''' + @BBY05 + ''%'''''' if @Relation = 1 set @sql = @sql + '' and K.LSQty < L.BAL05'' if @Relation = 2 set @sql = @sql + '' and K.LSQty > L.BAL04'' exec(@sql)<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 0=任意 1=低库存预警 2=高库存预警 ' where Code='HO.DPQuery.S.000014' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000007' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000007') begin --插入 Declare @Report_Id_422 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_422 out Declare @Report_Id_422_CateID int Set @Report_Id_422_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_422, 'HO.DPQuery.S.000007', '药房药品业务帐查询', Null, Null, @Report_Id_422_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 09:59:59', Null, ' 899C8ECA7FFD92BB8E0DE3673926F781DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DPK2'') is not null drop table #DPK2 select M.* into #DPK2 from ( select ROW_NUMBER() over(Partition by BBY01, DPK1_ID order by sysdate) as xRow, * from DPK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' IF OBJECT_ID(''tempdb..#TMP_DPL1'') is not null drop table #TMP_DPL1 SELECT L.BCK01 , Y.BBY01 , L.AuditingDate 记帐时间 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药房入库单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药房入库单_进价金额 , 0 药房入库单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药房入库单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药房退库单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药房退库单_进价金额 , 0 药房退库单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药房退库单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药房发药单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药房发药单_进价金额 , 0 药房发药单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药房发药单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药房退药单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药房退药单_进价金额 , 0 药房退药单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药房退药单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药房损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药房损益单_进价金额 , 0 药房损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药房损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药房盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药房盘点单_进价金额 , 0 药房盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药房盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药房调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药房调入单_进价金额 , 0 药房调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药房调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药房调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药房调出单_进价金额 , 0 药房调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药房调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药房进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DPK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DPL1 FROM V_DPL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DPK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DPK2 K2 on K2.BBY01 = L.BBY01 AND K2.DPK1_ID = L.DPK_ID WHERE L.BCK01 = @BCK01 AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药品_编号, 药品_品名, 药品_规格, 单位, SUM(药房入库单_数量) 药房入库单_数量, SUM(药房入库单_进价金额) 药房入库单_进价金额, SUM(药房入库单_数量 * PresellPrice) 药房入库单_预售金额, SUM(药房入库单_销售金额) 药房入库单_销售金额, SUM(药房退库单_数量) 药房退库单_数量, SUM(药房退库单_进价金额) 药房退库单_进价金额, SUM(药房退库单_数量 * PresellPrice) 药房退库单_预售金额, SUM(药房退库单_销售金额) 药房退库单_销售金额, SUM(药房发药单_数量) 药房发药单_数量, SUM(药房发药单_进价金额) 药房发药单_进价金额, SUM(药房发药单_数量 * PresellPrice) 药房发药单_预售金额, SUM(药房发药单_销售金额) 药房发药单_销售金额, SUM(药房退药单_数量) 药房退药单_数量, SUM(药房退药单_进价金额) 药房退药单_进价金额, SUM(药房退药单_数量 * PresellPrice) 药房退药单_预售金额, SUM(药房退药单_销售金额) 药房退药单_销售金额, SUM(药房损益单_数量) 药房损益单_数量, SUM(药房损益单_进价金额) 药房损益单_进价金额, SUM(药房损益单_数量 * PresellPrice) 药房损益单_预售金额, SUM(药房损益单_销售金额) 药房损益单_销售金额, SUM(药房盘点单_数量) 药房盘点单_数量, SUM(药房盘点单_进价金额) 药房盘点单_进价金额, SUM(药房盘点单_数量 * PresellPrice) 药房盘点单_预售金额, SUM(药房盘点单_销售金额) 药房盘点单_销售金额, SUM(药房调入单_数量) 药房调入单_数量, SUM(药房调入单_进价金额) 药房调入单_进价金额, SUM(药房调入单_数量 * PresellPrice) 药房调入单_预售金额, SUM(药房调入单_销售金额) 药房调入单_销售金额, SUM(药房调出单_数量) 药房调出单_数量, SUM(药房调出单_进价金额) 药房调出单_进价金额, SUM(药房调出单_数量 * PresellPrice) 药房调出单_预售金额, SUM(药房调出单_销售金额) 药房调出单_销售金额, SUM(药房进价调价差额) 药房进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药房入库单_数量)-SUM(药房退库单_数量)-SUM(药房发药单_数量)+SUM(药房退药单_数量) +SUM(药房损益单_数量)+SUM(药房盘点单_数量)+SUM(药房调入单_数量)-SUM(药房调出单_数量), 结余_进价金额 = SUM(药房入库单_进价金额)-SUM(药房退库单_进价金额)-SUM(药房发药单_进价金额)+SUM(药房退药单_进价金额)+SUM(药房进价调价差额) + SUM(药房损益单_进价金额)+SUM(药房盘点单_进价金额)+SUM(药房调入单_进价金额)-SUM(药房调出单_进价金额) + SUM(药房进价调价差额), 结余_预售金额 = SUM(药房入库单_预售金额)-SUM(药房退库单_预售金额)-SUM(药房发药单_预售金额)+SUM(药房退药单_预售金额) + SUM(药房损益单_预售金额)+SUM(药房盘点单_预售金额)+SUM(药房调入单_预售金额)-SUM(药房调出单_预售金额), 结余_销售金额 = SUM(药房入库单_销售金额)-SUM(药房退库单_销售金额)-SUM(药房发药单_销售金额)+SUM(药房退药单_销售金额) + SUM(药房损益单_销售金额)+SUM(药房盘点单_销售金额)+SUM(药房调入单_销售金额)-SUM(药房调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DPL1 GROUP BY 药品_编号, 药品_品名, 药品_规格, 单位, 产地, 剂型, 药品分类<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 899C8ECA7FFD92BB8E0DE3673926F781DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate if OBJECT_ID(''tempdb..#DPK2'') is not null drop table #DPK2 select M.* into #DPK2 from ( select ROW_NUMBER() over(Partition by BBY01, DPK1_ID order by sysdate) as xRow, * from DPK2 A where sysdate >= @EndDate ) M join BBY1 Y on Y.BBY01 = M.BBY01 where M.xRow = 1 AND Y.BBY05 like @BBY05 + ''%'' IF OBJECT_ID(''tempdb..#TMP_DPL1'') is not null drop table #TMP_DPL1 SELECT L.BCK01 , Y.BBY01 , L.AuditingDate 记帐时间 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , L.Unit 单位 , L.PackSize 单位包装 , L.BatchNo 产品批号 , L.PurchasePrice , (case when isnull(K2.PresellPrice, 0) = 0 then L.PresellPrice else K2.PresellPrice end) PresellPrice , L.RetailPrice , CASE L.xTypeID WHEN 2 THEN L.Quantity ELSE 0 END 药房入库单_数量 , CASE L.xTypeID WHEN 2 THEN L.PurchaseAmount ELSE 0 END 药房入库单_进价金额 , 0 药房入库单_预售金额 , CASE L.xTypeID WHEN 2 THEN L.RetailAmount ELSE 0 END 药房入库单_销售金额 , CASE L.xTypeID WHEN 3 THEN L.Quantity ELSE 0 END 药房退库单_数量 , CASE L.xTypeID WHEN 3 THEN L.PurchaseAmount ELSE 0 END 药房退库单_进价金额 , 0 药房退库单_预售金额 , CASE L.xTypeID WHEN 3 THEN L.RetailAmount ELSE 0 END 药房退库单_销售金额 , CASE L.xTypeID WHEN 4 THEN L.Quantity ELSE 0 END 药房发药单_数量 , CASE L.xTypeID WHEN 4 THEN L.PurchaseAmount ELSE 0 END 药房发药单_进价金额 , 0 药房发药单_预售金额 , CASE L.xTypeID WHEN 4 THEN L.RetailAmount ELSE 0 END 药房发药单_销售金额 , CASE L.xTypeID WHEN 5 THEN L.Quantity ELSE 0 END 药房退药单_数量 , CASE L.xTypeID WHEN 5 THEN L.PurchaseAmount ELSE 0 END 药房退药单_进价金额 , 0 药房退药单_预售金额 , CASE L.xTypeID WHEN 5 THEN L.RetailAmount ELSE 0 END 药房退药单_销售金额 , CASE L.xTypeID WHEN 6 THEN L.Quantity ELSE 0 END 药房损益单_数量 , CASE L.xTypeID WHEN 6 THEN L.PurchaseAmount ELSE 0 END 药房损益单_进价金额 , 0 药房损益单_预售金额 , CASE L.xTypeID WHEN 6 THEN L.RetailAmount ELSE 0 END 药房损益单_销售金额 , CASE L.xTypeID WHEN 7 THEN L.Quantity ELSE 0 END 药房盘点单_数量 , CASE L.xTypeID WHEN 7 THEN L.PurchaseAmount ELSE 0 END 药房盘点单_进价金额 , 0 药房盘点单_预售金额 , CASE L.xTypeID WHEN 7 THEN L.RetailAmount ELSE 0 END 药房盘点单_销售金额 , CASE L.xTypeID WHEN 8 THEN L.Quantity ELSE 0 END 药房调入单_数量 , CASE L.xTypeID WHEN 8 THEN L.PurchaseAmount ELSE 0 END 药房调入单_进价金额 , 0 药房调入单_预售金额 , CASE L.xTypeID WHEN 8 THEN L.RetailAmount ELSE 0 END 药房调入单_销售金额 , CASE L.xTypeID WHEN 9 THEN L.Quantity ELSE 0 END 药房调出单_数量 , CASE L.xTypeID WHEN 9 THEN L.PurchaseAmount ELSE 0 END 药房调出单_进价金额 , 0 药房调出单_预售金额 , CASE L.xTypeID WHEN 9 THEN L.RetailAmount ELSE 0 END 药房调出单_销售金额 , CASE L.xTypeID WHEN 10 THEN L.PurchaseAmount ELSE 0 END 药房进价调价差额 , CASE L.xTypeID WHEN 11 THEN L.RetailAmount ELSE 0 END 销售价差额 , Y.BBE02 产地 , G.BAG15 批准文号 , K.ProduceDate 生产日期 , K.ExpiryDate 有效期至 , O.BDO03 药品分类 , T.BAP02 剂型 , K.BBH01 供应商ID , H.BBH03 供应商编号 , H.BBH04 供应商名称 , L.Assessor 记帐人 , L.BillNO 单号 , L.DPK_ID 批次号 , L.xTypeID 单据种类 , L.Remark 备注 INTO #TMP_DPL1 FROM V_DPL1 L join BBY1 Y ON Y.BBY01 = L.BBY01 join BAG1 G ON G.BBY01 = L.BBY01 LEFT join DSK1 K ON K.ID = L.DPK_ID left join BBH1 H ON H.BBH01 = K.BBH01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 t ON T.BBX01 = G.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join #DPK2 K2 on K2.BBY01 = L.BBY01 AND K2.DPK1_ID = L.DPK_ID WHERE L.BCK01 = @BCK01 AND L.AuditingDate between @BeginDate and @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT 药品_编号, 药品_品名, 药品_规格, 单位, SUM(药房入库单_数量) 药房入库单_数量, SUM(药房入库单_进价金额) 药房入库单_进价金额, SUM(药房入库单_数量 * PresellPrice) 药房入库单_预售金额, SUM(药房入库单_销售金额) 药房入库单_销售金额, SUM(药房退库单_数量) 药房退库单_数量, SUM(药房退库单_进价金额) 药房退库单_进价金额, SUM(药房退库单_数量 * PresellPrice) 药房退库单_预售金额, SUM(药房退库单_销售金额) 药房退库单_销售金额, SUM(药房发药单_数量) 药房发药单_数量, SUM(药房发药单_进价金额) 药房发药单_进价金额, SUM(药房发药单_数量 * PresellPrice) 药房发药单_预售金额, SUM(药房发药单_销售金额) 药房发药单_销售金额, SUM(药房退药单_数量) 药房退药单_数量, SUM(药房退药单_进价金额) 药房退药单_进价金额, SUM(药房退药单_数量 * PresellPrice) 药房退药单_预售金额, SUM(药房退药单_销售金额) 药房退药单_销售金额, SUM(药房损益单_数量) 药房损益单_数量, SUM(药房损益单_进价金额) 药房损益单_进价金额, SUM(药房损益单_数量 * PresellPrice) 药房损益单_预售金额, SUM(药房损益单_销售金额) 药房损益单_销售金额, SUM(药房盘点单_数量) 药房盘点单_数量, SUM(药房盘点单_进价金额) 药房盘点单_进价金额, SUM(药房盘点单_数量 * PresellPrice) 药房盘点单_预售金额, SUM(药房盘点单_销售金额) 药房盘点单_销售金额, SUM(药房调入单_数量) 药房调入单_数量, SUM(药房调入单_进价金额) 药房调入单_进价金额, SUM(药房调入单_数量 * PresellPrice) 药房调入单_预售金额, SUM(药房调入单_销售金额) 药房调入单_销售金额, SUM(药房调出单_数量) 药房调出单_数量, SUM(药房调出单_进价金额) 药房调出单_进价金额, SUM(药房调出单_数量 * PresellPrice) 药房调出单_预售金额, SUM(药房调出单_销售金额) 药房调出单_销售金额, SUM(药房进价调价差额) 药房进价调价差额, SUM(销售价差额) 销售价差额, 结余_数量 = SUM(药房入库单_数量)-SUM(药房退库单_数量)-SUM(药房发药单_数量)+SUM(药房退药单_数量) +SUM(药房损益单_数量)+SUM(药房盘点单_数量)+SUM(药房调入单_数量)-SUM(药房调出单_数量), 结余_进价金额 = SUM(药房入库单_进价金额)-SUM(药房退库单_进价金额)-SUM(药房发药单_进价金额)+SUM(药房退药单_进价金额)+SUM(药房进价调价差额) + SUM(药房损益单_进价金额)+SUM(药房盘点单_进价金额)+SUM(药房调入单_进价金额)-SUM(药房调出单_进价金额) + SUM(药房进价调价差额), 结余_预售金额 = SUM(药房入库单_预售金额)-SUM(药房退库单_预售金额)-SUM(药房发药单_预售金额)+SUM(药房退药单_预售金额) + SUM(药房损益单_预售金额)+SUM(药房盘点单_预售金额)+SUM(药房调入单_预售金额)-SUM(药房调出单_预售金额), 结余_销售金额 = SUM(药房入库单_销售金额)-SUM(药房退库单_销售金额)-SUM(药房发药单_销售金额)+SUM(药房退药单_销售金额) + SUM(药房损益单_销售金额)+SUM(药房盘点单_销售金额)+SUM(药房调入单_销售金额)-SUM(药房调出单_销售金额) + SUM(销售价差额), 产地, 剂型, 药品分类 FROM #TMP_DPL1 GROUP BY 药品_编号, 药品_品名, 药品_规格, 单位, 产地, 剂型, 药品分类<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000007' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000016' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000016') begin --插入 Declare @Report_Id_424 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_424 out Declare @Report_Id_424_CateID int Set @Report_Id_424_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_424, 'HO.DPQuery.S.000016', '药房药品进销存帐查询', Null, Null, @Report_Id_424_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 10:05:38', Null, ' C237E0858876B3D6A81EB2698EC6A141DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_JXC'') is not null drop table #TEMP_JXC SELECT M.BCK01 药房Id , M.iYear 年 , M.iMonth 月 , M.BBY01 药品ID , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 , Y.BBE02 产地 , Q.BAX03 收入项目 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --本期增加 , Quantity_2 - Quantity_3 + Quantity_6P + Quantity_7W + Quantity_8 AS 本期增加_数量 , PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10 AS 本期增加_进价金额 , PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10 AS 本期增加_预售金额 , RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10 AS 本期增加_销售金额 --本期减省 , Quantity_4 - Quantity_5 + Quantity_6L + Quantity_7L + Quantity_9 AS 本期减少_数量 , PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9 AS 本期减少_进价金额 , PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9 AS 本期减少_预售金额 , RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9 AS 本期减少_销售金额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_JXC FROM DPM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_数量, 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_数量, 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 药品分类, 剂型 FROM #TEMP_JXC DROP TABLE #TEMP_JXCDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_JXCHZ'') is not null drop table #TEMP_JXCHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 --期初结余 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 --本期增加 , SUM(PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10) AS 本期增加_进价金额 , SUM(PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10) AS 本期增加_预售金额 , SUM(RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10) AS 本期增加_销售金额 --本期减省 , SUM(PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9) AS 本期减少_进价金额 , SUM(PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9) AS 本期减少_预售金额 , SUM(RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9) AS 本期减少_销售金额 --期未结存 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 INTO #TEMP_JXCHZ FROM DPM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03 SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 FROM #TEMP_JXCHZ DROP TABLE #TEMP_JXCHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' C237E0858876B3D6A81EB2698EC6A141DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_JXC'') is not null drop table #TEMP_JXC SELECT M.BCK01 药房Id , M.iYear 年 , M.iMonth 月 , M.BBY01 药品ID , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 , Y.BBE02 产地 , Q.BAX03 收入项目 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --本期增加 , Quantity_2 - Quantity_3 + Quantity_6P + Quantity_7W + Quantity_8 AS 本期增加_数量 , PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10 AS 本期增加_进价金额 , PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10 AS 本期增加_预售金额 , RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10 AS 本期增加_销售金额 --本期减省 , Quantity_4 - Quantity_5 + Quantity_6L + Quantity_7L + Quantity_9 AS 本期减少_数量 , PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9 AS 本期减少_进价金额 , PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9 AS 本期减少_预售金额 , RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9 AS 本期减少_销售金额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , T.BAP02 剂型 , O.BDO03 药品分类 INTO #TEMP_JXC FROM DPM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_数量, 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_数量, 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 药品分类, 剂型 FROM #TEMP_JXC DROP TABLE #TEMP_JXCDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_JXCHZ'') is not null drop table #TEMP_JXCHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 --期初结余 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 --本期增加 , SUM(PurchaseAmount_2 - PurchaseAmount_3 + PurchaseAmount_6P + PurchaseAmount_7W + PurchaseAmount_8 + PurchaseAmount_10) AS 本期增加_进价金额 , SUM(PresellAmount_2 - PresellAmount_3 + PresellAmount_6P + PresellAmount_7W + PresellAmount_8 + PresellAmount_10) AS 本期增加_预售金额 , SUM(RetailAmount_2 - RetailAmount_3 + RetailAmount_6P + RetailAmount_7W + RetailAmount_8 + RetailAmount_10) AS 本期增加_销售金额 --本期减省 , SUM(PurchaseAmount_4 - PurchaseAmount_5 + PurchaseAmount_6L + PurchaseAmount_7L + PurchaseAmount_9) AS 本期减少_进价金额 , SUM(PresellAmount_4 - PresellAmount_5 + PresellAmount_6L + PresellAmount_7L + PresellAmount_9) AS 本期减少_预售金额 , SUM(RetailAmount_4 - RetailAmount_5 + RetailAmount_6L + RetailAmount_7L + RetailAmount_9) AS 本期减少_销售金额 --期未结存 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 INTO #TEMP_JXCHZ FROM DPM2 M join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = Y.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03 SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 本期增加_进价金额, 本期增加_预售金额, 本期增加_销售金额 , 本期减少_进价金额, 本期减少_预售金额, 本期减少_销售金额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 FROM #TEMP_JXCHZ DROP TABLE #TEMP_JXCHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ' where Code='HO.DPQuery.S.000016' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000018' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000018') begin --插入 Declare @Report_Id_425 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_425 out Declare @Report_Id_425_CateID int Set @Report_Id_425_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_425, 'HO.DPQuery.S.000018', '药房药品月结帐查询', Null, Null, @Report_Id_425_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 10:05:46', Null, ' 439A91291649CF166708F9BE3E5B3DA4DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_YJZ'') is not null drop table #TEMP_YJZ DECLARE @MINMonth int , @MINYear int , @MAXMonth int , @MAXYear int , @QCNumber float , @QCPAmount float , @QCRAmount float , @QMNumber float , @QMPAmount float , @QMRAmount float SELECT M.iYear 年 , M.iMonth 月 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --2.药房入库单 , Quantity_2 药房入库单_数量 , PurchaseAmount_2 药房入库单_进价金额 , PresellAmount_2 药房入库单_预售金额 , RetailAmount_2 药房入库单_销售金额 --3.药房退库单 , Quantity_3 药房退库单_数量 , PurchaseAmount_3 药房退库单_进价金额 , PresellAmount_3 药房退库单_预售金额 , RetailAmount_3 药房退库单_销售金额 --4.药房发药单 , Quantity_4 药房发药单_数量 , PurchaseAmount_4 药房发药单_进价金额 , PresellAmount_4 药房发药单_预售金额 , RetailAmount_4 药房发药单_销售金额 --5.药房退药单 , Quantity_5 药房退药单_数量 , PurchaseAmount_5 药房退药单_进价金额 , PresellAmount_5 药房退药单_预售金额 , RetailAmount_5 药房退药单_销售金额 --6.药房损益单 , Quantity_6P - Quantity_6L 药房损益单_数量 , PurchaseAmount_6P - PurchaseAmount_6L 药房损益单_进价金额 , PresellAmount_6P - PresellAmount_6L 药房损益单_预售金额 , RetailAmount_6P - RetailAmount_6L 药房损益单_销售金额 --7.药房盘点单 , Quantity_7W - Quantity_7L 药房盘点单_数量 , PurchaseAmount_7W - PurchaseAmount_7L 药房盘点单_进价金额 , PresellAmount_7W - PresellAmount_7L 药房盘点单_预售金额 , RetailAmount_7W - RetailAmount_7L 药房盘点单_销售金额 --8.药房调入单 , Quantity_8 药房调入单_数量 , PurchaseAmount_8 药房调入单_进价金额 , PresellAmount_8 药房调入单_预售金额 , RetailAmount_8 药房调入单_销售金额 --9.药房调出单 , Quantity_9 药房调出单_数量 , PurchaseAmount_9 药房调出单_进价金额 , PresellAmount_9 药房调出单_预售金额 , RetailAmount_9 药房调出单_销售金额 --10.进价差额 , PurchaseAmount_10 进价差额 --11.销售价差额 , RetailAmount_10 销售价差额 , PresellAmount_10 预售价差额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , Y.BBE02 产地 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , M.Maker 结帐人 , B.StartDate 起始日期 , B.EndDate 截止日期 , Y.BBY19 INTO #TEMP_YJZ FROM DPM2 M join DPM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药房入库单_数量, 药房入库单_进价金额, 药房入库单_预售金额, 药房入库单_销售金额 , 药房退库单_数量, 药房退库单_进价金额, 药房退库单_预售金额, 药房退库单_销售金额 , 药房发药单_数量, 药房发药单_进价金额, 药房发药单_预售金额, 药房发药单_销售金额 , 药房退药单_数量, 药房退药单_进价金额, 药房退药单_预售金额, 药房退药单_销售金额 , 药房损益单_数量, 药房损益单_进价金额, 药房损益单_预售金额, 药房损益单_销售金额 , 药房盘点单_数量, 药房盘点单_进价金额, 药房盘点单_预售金额, 药房盘点单_销售金额 , 药房调入单_数量, 药房调入单_进价金额, 药房调入单_预售金额, 药房调入单_销售金额 , 药房调出单_数量, 药房调出单_进价金额, 药房调出单_预售金额, 药房调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 结帐人, 起始日期 AS 结帐日期_起始日期, 截止日期 AS 结帐日期_截止日期, 货位, 剂型, 药品分类 FROM #TEMP_YJZ DROP TABLE #TEMP_YJZDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_YJZHZ'') is not null drop table #TEMP_YJZHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 , SUM(PurchaseAmount_2) 药房入库单_进价金额 , SUM(PresellAmount_2) 药房入库单_预售金额 , SUM(RetailAmount_2) 药房入库单_销售金额 , SUM(PurchaseAmount_3) 药房退库单_进价金额 , SUM(PresellAmount_3) 药房退库单_预售金额 , SUM(RetailAmount_3) 药房退库单_销售金额 , SUM(PurchaseAmount_4) 药房发药单_进价金额 , SUM(PresellAmount_4) 药房发药单_预售金额 , SUM(RetailAmount_4) 药房发药单_销售金额 , SUM(PurchaseAmount_5) 药房退药单_进价金额 , SUM(PresellAmount_5) 药房退药单_预售金额 , SUM(RetailAmount_5) 药房退药单_销售金额 , SUM(PurchaseAmount_6P) 药房损益单_益_进价金额 , SUM(PresellAmount_6P) 药房损益单_益_预售金额 , SUM(RetailAmount_6P) 药房损益单_益_销售金额 , SUM(PurchaseAmount_6L) 药房损益单_损_进价金额 , SUM(PresellAmount_6L) 药房损益单_损_预售金额 , SUM(RetailAmount_6L) 药房损益单_损_销售金额 , SUM(PurchaseAmount_7W) 药房盘点单_盘赢_进价金额 , SUM(PresellAmount_7W) 药房盘点单_盘赢_预售金额 , SUM(RetailAmount_7W) 药房盘点单_盘赢_销售金额 , SUM(PurchaseAmount_7L) 药房盘点单_盘亏_进价金额 , SUM(PresellAmount_7L) 药房盘点单_盘亏_预售金额 , SUM(RetailAmount_7L) 药房盘点单_盘亏_销售金额 , SUM(PurchaseAmount_8) 药房调入单_进价金额 , SUM(PresellAmount_8) 药房调入单_预售金额 , SUM(RetailAmount_8) 药房调入单_销售金额 , SUM(PurchaseAmount_9) 药房调出单_进价金额 , SUM(PresellAmount_9) 药房调出单_预售金额 , SUM(RetailAmount_9) 药房调出单_销售金额 , SUM(PurchaseAmount_10) 进价差额 , SUM(RetailAmount_10) 销售价差额 , sum(PresellAmount_10) 预售价差额 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 , B.StartDate 起始日期 , B.EndDate 结止日期 INTO #TEMP_YJZHZ FROM DPM2 M join DPM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03, B.StartDate, B.EndDate SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药房入库单_进价金额, 药房入库单_预售金额, 药房入库单_销售金额 , 药房退库单_进价金额, 药房退库单_预售金额, 药房退库单_销售金额 , 药房发药单_进价金额, 药房发药单_预售金额, 药房发药单_销售金额 , 药房退药单_进价金额, 药房退药单_预售金额, 药房退药单_销售金额 , 药房损益单_益_进价金额, 药房损益单_益_预售金额, 药房损益单_益_销售金额 , 药房损益单_损_进价金额, 药房损益单_损_预售金额, 药房损益单_损_销售金额 , 药房盘点单_盘赢_进价金额, 药房盘点单_盘赢_预售金额, 药房盘点单_盘赢_销售金额 , 药房盘点单_盘亏_进价金额, 药房盘点单_盘亏_预售金额, 药房盘点单_盘亏_销售金额 , 药房调入单_进价金额, 药房调入单_预售金额, 药房调入单_销售金额 , 药房调出单_进价金额, 药房调出单_预售金额, 药房调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期 FROM #TEMP_YJZHZ DROP TABLE #TEMP_YJZHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' 439A91291649CF166708F9BE3E5B3DA4DECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_YJZ'') is not null drop table #TEMP_YJZ DECLARE @MINMonth int , @MINYear int , @MAXMonth int , @MAXYear int , @QCNumber float , @QCPAmount float , @QCRAmount float , @QMNumber float , @QMPAmount float , @QMRAmount float SELECT M.iYear 年 , M.iMonth 月 , Y.BBY04 药品_编号 , Y.BBY05 药品_品名 , Y.BBY06 药品_规格 , M.Unit 单位 --期初结余 , Quantity_i 期初结余_数量 , PurchaseAmount_i 期初结余_进价金额 , PresellAmount_i 期初结余_预售金额 , RetailAmount_i 期初结余_销售金额 --2.药房入库单 , Quantity_2 药房入库单_数量 , PurchaseAmount_2 药房入库单_进价金额 , PresellAmount_2 药房入库单_预售金额 , RetailAmount_2 药房入库单_销售金额 --3.药房退库单 , Quantity_3 药房退库单_数量 , PurchaseAmount_3 药房退库单_进价金额 , PresellAmount_3 药房退库单_预售金额 , RetailAmount_3 药房退库单_销售金额 --4.药房发药单 , Quantity_4 药房发药单_数量 , PurchaseAmount_4 药房发药单_进价金额 , PresellAmount_4 药房发药单_预售金额 , RetailAmount_4 药房发药单_销售金额 --5.药房退药单 , Quantity_5 药房退药单_数量 , PurchaseAmount_5 药房退药单_进价金额 , PresellAmount_5 药房退药单_预售金额 , RetailAmount_5 药房退药单_销售金额 --6.药房损益单 , Quantity_6P - Quantity_6L 药房损益单_数量 , PurchaseAmount_6P - PurchaseAmount_6L 药房损益单_进价金额 , PresellAmount_6P - PresellAmount_6L 药房损益单_预售金额 , RetailAmount_6P - RetailAmount_6L 药房损益单_销售金额 --7.药房盘点单 , Quantity_7W - Quantity_7L 药房盘点单_数量 , PurchaseAmount_7W - PurchaseAmount_7L 药房盘点单_进价金额 , PresellAmount_7W - PresellAmount_7L 药房盘点单_预售金额 , RetailAmount_7W - RetailAmount_7L 药房盘点单_销售金额 --8.药房调入单 , Quantity_8 药房调入单_数量 , PurchaseAmount_8 药房调入单_进价金额 , PresellAmount_8 药房调入单_预售金额 , RetailAmount_8 药房调入单_销售金额 --9.药房调出单 , Quantity_9 药房调出单_数量 , PurchaseAmount_9 药房调出单_进价金额 , PresellAmount_9 药房调出单_预售金额 , RetailAmount_9 药房调出单_销售金额 --10.进价差额 , PurchaseAmount_10 进价差额 --11.销售价差额 , RetailAmount_10 销售价差额 , PresellAmount_10 预售价差额 --期未结存 , Quantity_E 期末结存_数量 , PurchaseAmount_E 期末结存_进价金额 , PresellAmount_E 期末结存_预售金额 , RetailAmount_E 期末结存_销售金额 , Y.BBE02 产地 , T.BAP02 剂型 , L.BCD02 货位 , O.BDO03 药品分类 , M.Maker 结帐人 , B.StartDate 起始日期 , B.EndDate 截止日期 , Y.BBY19 INTO #TEMP_YJZ FROM DPM2 M join DPM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd and Y.BBY05 like @BBY05 + ''%'' SELECT 年, 月, 药品_编号, 药品_品名, 药品_规格, 单位 , 期初结余_数量, 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药房入库单_数量, 药房入库单_进价金额, 药房入库单_预售金额, 药房入库单_销售金额 , 药房退库单_数量, 药房退库单_进价金额, 药房退库单_预售金额, 药房退库单_销售金额 , 药房发药单_数量, 药房发药单_进价金额, 药房发药单_预售金额, 药房发药单_销售金额 , 药房退药单_数量, 药房退药单_进价金额, 药房退药单_预售金额, 药房退药单_销售金额 , 药房损益单_数量, 药房损益单_进价金额, 药房损益单_预售金额, 药房损益单_销售金额 , 药房盘点单_数量, 药房盘点单_进价金额, 药房盘点单_预售金额, 药房盘点单_销售金额 , 药房调入单_数量, 药房调入单_进价金额, 药房调入单_预售金额, 药房调入单_销售金额 , 药房调出单_数量, 药房调出单_进价金额, 药房调出单_预售金额, 药房调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_数量, 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 产地, 结帐人, 起始日期 AS 结帐日期_起始日期, 截止日期 AS 结帐日期_截止日期, 货位, 剂型, 药品分类 FROM #TEMP_YJZ DROP TABLE #TEMP_YJZDECLARE @BCK01 varchar(10) , @BBY05 varchar(50) , @FBegin varchar(4) , @FEnd varchar(2) set @BCK01= :BCK01 set @BBY05= :BBY05 set @FBegin= :FBegin set @FEnd= :FEnd if OBJECT_ID(''tempdb..#TEMP_YJZHZ'') is not null drop table #TEMP_YJZHZ SELECT M.iYear 年 , M.iMonth 月 , Q.BAX03 收入项目 , SUM(PurchaseAmount_i) 期初结余_进价金额 , SUM(PresellAmount_i) 期初结余_预售金额 , SUM(RetailAmount_i) 期初结余_销售金额 , SUM(PurchaseAmount_2) 药房入库单_进价金额 , SUM(PresellAmount_2) 药房入库单_预售金额 , SUM(RetailAmount_2) 药房入库单_销售金额 , SUM(PurchaseAmount_3) 药房退库单_进价金额 , SUM(PresellAmount_3) 药房退库单_预售金额 , SUM(RetailAmount_3) 药房退库单_销售金额 , SUM(PurchaseAmount_4) 药房发药单_进价金额 , SUM(PresellAmount_4) 药房发药单_预售金额 , SUM(RetailAmount_4) 药房发药单_销售金额 , SUM(PurchaseAmount_5) 药房退药单_进价金额 , SUM(PresellAmount_5) 药房退药单_预售金额 , SUM(RetailAmount_5) 药房退药单_销售金额 , SUM(PurchaseAmount_6P) 药房损益单_益_进价金额 , SUM(PresellAmount_6P) 药房损益单_益_预售金额 , SUM(RetailAmount_6P) 药房损益单_益_销售金额 , SUM(PurchaseAmount_6L) 药房损益单_损_进价金额 , SUM(PresellAmount_6L) 药房损益单_损_预售金额 , SUM(RetailAmount_6L) 药房损益单_损_销售金额 , SUM(PurchaseAmount_7W) 药房盘点单_盘赢_进价金额 , SUM(PresellAmount_7W) 药房盘点单_盘赢_预售金额 , SUM(RetailAmount_7W) 药房盘点单_盘赢_销售金额 , SUM(PurchaseAmount_7L) 药房盘点单_盘亏_进价金额 , SUM(PresellAmount_7L) 药房盘点单_盘亏_预售金额 , SUM(RetailAmount_7L) 药房盘点单_盘亏_销售金额 , SUM(PurchaseAmount_8) 药房调入单_进价金额 , SUM(PresellAmount_8) 药房调入单_预售金额 , SUM(RetailAmount_8) 药房调入单_销售金额 , SUM(PurchaseAmount_9) 药房调出单_进价金额 , SUM(PresellAmount_9) 药房调出单_预售金额 , SUM(RetailAmount_9) 药房调出单_销售金额 , SUM(PurchaseAmount_10) 进价差额 , SUM(RetailAmount_10) 销售价差额 , sum(PresellAmount_10) 预售价差额 , SUM(PurchaseAmount_E) 期末结存_进价金额 , SUM(PresellAmount_E) 期末结存_预售金额 , SUM(RetailAmount_E) 期末结存_销售金额 , B.StartDate 起始日期 , B.EndDate 结止日期 INTO #TEMP_YJZHZ FROM DPM2 M join DPM1 B ON B.BCK01 = M.BCK01 and B.iYear = M.iYear and B.iMonth = M.iMonth join BBY1 Y ON Y.BBY01 = M.BBY01 join BAG1 G ON G.BBY01 = M.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BAL1 L ON L.BCK01 = M.BCK01 and L.BBY01 = Y.BBY01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 WHERE (M.BCK01 = @BCK01) and M.iYear= @FBegin and M.iMonth=@FEnd GROUP BY M.iYear, M.iMonth, Q.BAX03, B.StartDate, B.EndDate SELECT 年, 月, 收入项目 , 期初结余_进价金额, 期初结余_预售金额, 期初结余_销售金额 , 药房入库单_进价金额, 药房入库单_预售金额, 药房入库单_销售金额 , 药房退库单_进价金额, 药房退库单_预售金额, 药房退库单_销售金额 , 药房发药单_进价金额, 药房发药单_预售金额, 药房发药单_销售金额 , 药房退药单_进价金额, 药房退药单_预售金额, 药房退药单_销售金额 , 药房损益单_益_进价金额, 药房损益单_益_预售金额, 药房损益单_益_销售金额 , 药房损益单_损_进价金额, 药房损益单_损_预售金额, 药房损益单_损_销售金额 , 药房盘点单_盘赢_进价金额, 药房盘点单_盘赢_预售金额, 药房盘点单_盘赢_销售金额 , 药房盘点单_盘亏_进价金额, 药房盘点单_盘亏_预售金额, 药房盘点单_盘亏_销售金额 , 药房调入单_进价金额, 药房调入单_预售金额, 药房调入单_销售金额 , 药房调出单_进价金额, 药房调出单_预售金额, 药房调出单_销售金额 , 进价差额, 销售价差额, 预售价差额 , 期末结存_进价金额, 期末结存_预售金额, 期末结存_销售金额 , 起始日期 AS 结帐日期_起始日期, 结止日期 AS 结帐日期_结止日期 FROM #TEMP_YJZHZ DROP TABLE #TEMP_YJZHZ<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs>2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20201 2 3 4 5 6 7 8 9 10 11 12 ' where Code='HO.DPQuery.S.000018' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000021' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000021') begin --插入 Declare @Report_Id_432 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_432 out Declare @Report_Id_432_CateID int Set @Report_Id_432_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_432, 'HO.DPQuery.S.000021', '药房药品三级帐查询', Null, Null, @Report_Id_432_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2011-08-03 10:07:40', Null, ' C84D485C00A521D678032E5257EDE39BDECLARE @BCK01 varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate DECLARE @DPM_Year int --月结帐 年 , @DPM_Month INT --月结帐 月 , @DPM_EndDate datetime --结帐结束日期 , @QC_Quantity numeric(18,6) --期初数量 , @QC_PurchaseAmount numeric(18,6) --期初进货金额 , @QC_PresellAmount numeric(18,6) --期初预售金额 , @xRowNum int , @Quantity numeric(18,6) , @PurchaseAmount numeric(18,6) , @PresellAmount numeric(18,6) SET @DPM_Year = 0 SET @DPM_Month= 0 SET @DPM_EndDate = ''1900-01-01 00:00:00'' SET @QC_Quantity = 0 SET @QC_PurchaseAmount = 0 SET @QC_PresellAmount = 0 CREATE TABLE #TEMP_DPMX( xRowNum int , xTypeID int , xTypeName varchar(30) , BillNO varchar(30) , BatchNO varchar(30) , AuditingDate datetime , PurchasePrice numeric(18,6) , PresellPrice numeric(18,6) , BQR_Quantity numeric(18,6) , BQR_PurchaseAmount numeric(18,6) , BQR_PresellAmount numeric(18,6) , BQC_Quantity numeric(18,6) , BQC_PurchaseAmount numeric(18,6) , BQC_PresellAmount numeric(18,6) , QM_Quantity numeric(18,6) , QM_PurchaseAmount numeric(18,6) , QM_PresellAmount numeric(18,6) ) --统计期初数据:从月结帐中提取数据 SELECT TOP 1 @DPM_Year=iYear, @DPM_Month=iMonth, @DPM_EndDate=EndDate FROM DPM1 WHERE DATEDIFF(ss, EndDate, @BeginDate) > 0 AND BCK01 = @BCK01 ORDER BY EndDate DESC IF @DPM_Year <> 0 AND @DPM_Month <> 0 SELECT TOP 1 @QC_Quantity=Quantity_E, @QC_PurchaseAmount=PurchaseAmount_E, @QC_PresellAmount=PresellAmount_E FROM DPM2 WHERE BCK01 = @BCK01 AND iYear = @DPM_Year AND iMonth = @DPM_Month AND BBY01=@BBY01 --统计期初数据:提取单据中数据 月结日做开始时间 SELECT @QC_Quantity = @QC_Quantity + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END),0) , @QC_PurchaseAmount = @QC_PurchaseAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END),0) , @QC_PresellAmount = @QC_PresellAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity) *-1 ELSE (PresellPrice * Quantity) END),0) FROM V_DPL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(DAY, AuditingDate, @DPM_EndDate) < 0 AND DATEDIFF(SS, AuditingDate, @BeginDate) > 0 --统计本期的出入库数据,包含开始时刻的数据 SELECT CASE WHEN xTypeID=2 THEN ''(''+ Join_Name +'')''+''入库'' WHEN xTypeID=3 THEN ''(''+ Join_Name +'')''+''退库'' WHEN xTypeID=4 THEN ''(''+ Join_Name +'')''+''发药'' WHEN xTypeID=5 THEN ''(''+ Join_Name +'')''+''退药'' WHEN xTypeID=6 THEN ''(''+ Join_Name +'')''+''损益'' WHEN xTypeID=7 THEN ''(''+ Join_Name +'')''+''盘点'' WHEN xTypeID=8 THEN ''(''+ Join_Name +'')''+''调入'' WHEN xTypeID=9 THEN ''(''+ Join_Name +'')''+''调出'' END AS xTypeName , xTypeID , IDENTITY(int, 2,1) AS xRowNum , BatchNO , Quantity , PurchasePrice , PresellPrice , PurchaseAmount , (PresellPrice * Quantity) PresellAmount , AuditingDate , BillNO INTO #TEMP_DPL FROM V_DPL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(SS, AuditingDate, @BeginDate) <= 0 AND DATEDIFF(SS, AuditingDate, @EndDate) >= 0 ORDER BY AuditingDate INSERT #TEMP_DPMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 0, ''上期结转'',null,null,null,1,null,null, null,null,null, null,null,null, ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DPL WHERE xTypeID <> 3 AND xTypeID <> 4 AND xTypeID <> 5 AND xTypeID <> 9 AND xTypeID <> 6 AND xTypeID <> 7 AND xTypeID <> 10 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, Quantity, PurchaseAmount, PresellAmount, null,null,null FROM #TEMP_DPL WHERE xTypeID = 3 OR xTypeID = 4 OR xTypeID = 9 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DPL WHERE xTypeID = 5 UNION --盘点单、损益单、调价单要单独设置 SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DPL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity >= 0 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DPL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity < 0 --计算各行数据的期末结存数 DECLARE DPL_List_Cursor CURSOR FOR SELECT xRowNum, ISNULL(BQR_Quantity,0)-ISNULL(BQC_Quantity,0) AS Quantity, ISNULL(BQR_PurchaseAmount,0)-ISNULL(BQC_PurchaseAmount,0) AS PurchaseAmount , ISNULL(BQR_PresellAmount,0)-ISNULL(BQC_PresellAmount,0) AS PresellAmount FROM #TEMP_DPMX WHERE xRowNum <> 1 ORDER BY xRowNum OPEN DPL_List_Cursor FETCH NEXT FROM DPL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount WHILE @@FETCH_STATUS = 0 BEGIN SET @QC_Quantity = ISNULL(@QC_Quantity,0) + @Quantity SET @QC_PurchaseAmount = ISNULL(@QC_PurchaseAmount,0) + @PurchaseAmount SET @QC_PresellAmount = ISNULL(@QC_PresellAmount,0) + @PresellAmount UPDATE M SET M.QM_Quantity=@QC_Quantity, M.QM_PurchaseAmount=@QC_PurchaseAmount, M.QM_PresellAmount=@QC_PresellAmount FROM #TEMP_DPMX M WHERE xRowNum=@xRowNum FETCH NEXT FROM DPL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount END CLOSE DPL_List_Cursor DEALLOCATE DPL_List_Cursor --合计 INSERT #TEMP_DPMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 100, ''本期合计'',null,null,null,MAX(xRowNum) + 1,null,null, SUM(BQR_Quantity), SUM(BQR_PurchaseAmount), SUM(BQR_PresellAmount), SUM(BQC_Quantity), SUM(BQC_PurchaseAmount), SUM(BQC_PresellAmount), ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) FROM #TEMP_DPMX --SELECT @BBY01 AS 药品ID,@BCK01 AS 药库ID,* FROM #TEMP_DPMX order by xRowNum SELECT xRowNum AS 序号 ,AuditingDate AS 日期 --,xTypeID AS 单据类型 ,BillNo AS 凭证号 ,xTypeName AS 摘要 ,PurchasePrice AS 进货价 ,PresellPrice AS 预售价 ,BQR_Quantity AS 本期_增加数量 ,BQR_PurchaseAmount AS 本期_增加进价金额 ,BQR_PresellAmount AS 本期_增加预售金额 ,BQC_Quantity AS 本期_减少数量 ,BQC_PurchaseAmount AS 本期_减少进价金额 ,BQC_PresellAmount AS 本期_减少预售金额 ,QM_Quantity AS 期末_数量 ,QM_PurchaseAmount AS 期末_进价金额 ,QM_PresellAmount AS 期末_预售金额 ,BatchNO AS 批号 FROM #TEMP_DPMX order by xRowNum drop table #TEMP_DPL drop table #TEMP_DPMX<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' C84D485C00A521D678032E5257EDE39BDECLARE @BCK01 varchar(10) , @BBY01 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) set @BCK01= :BCK01 set @BBY01= :BBY01 set @BeginDate= :BeginDate set @EndDate= :EndDate DECLARE @DPM_Year int --月结帐 年 , @DPM_Month INT --月结帐 月 , @DPM_EndDate datetime --结帐结束日期 , @QC_Quantity numeric(18,6) --期初数量 , @QC_PurchaseAmount numeric(18,6) --期初进货金额 , @QC_PresellAmount numeric(18,6) --期初预售金额 , @xRowNum int , @Quantity numeric(18,6) , @PurchaseAmount numeric(18,6) , @PresellAmount numeric(18,6) SET @DPM_Year = 0 SET @DPM_Month= 0 SET @DPM_EndDate = ''1900-01-01 00:00:00'' SET @QC_Quantity = 0 SET @QC_PurchaseAmount = 0 SET @QC_PresellAmount = 0 CREATE TABLE #TEMP_DPMX( xRowNum int , xTypeID int , xTypeName varchar(30) , BillNO varchar(30) , BatchNO varchar(30) , AuditingDate datetime , PurchasePrice numeric(18,6) , PresellPrice numeric(18,6) , BQR_Quantity numeric(18,6) , BQR_PurchaseAmount numeric(18,6) , BQR_PresellAmount numeric(18,6) , BQC_Quantity numeric(18,6) , BQC_PurchaseAmount numeric(18,6) , BQC_PresellAmount numeric(18,6) , QM_Quantity numeric(18,6) , QM_PurchaseAmount numeric(18,6) , QM_PresellAmount numeric(18,6) ) --统计期初数据:从月结帐中提取数据 SELECT TOP 1 @DPM_Year=iYear, @DPM_Month=iMonth, @DPM_EndDate=EndDate FROM DPM1 WHERE DATEDIFF(ss, EndDate, @BeginDate) > 0 AND BCK01 = @BCK01 ORDER BY EndDate DESC IF @DPM_Year <> 0 AND @DPM_Month <> 0 SELECT TOP 1 @QC_Quantity=Quantity_E, @QC_PurchaseAmount=PurchaseAmount_E, @QC_PresellAmount=PresellAmount_E FROM DPM2 WHERE BCK01 = @BCK01 AND iYear = @DPM_Year AND iMonth = @DPM_Month AND BBY01=@BBY01 --统计期初数据:提取单据中数据 月结日做开始时间 SELECT @QC_Quantity = @QC_Quantity + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN Quantity*-1 ELSE Quantity END),0) , @QC_PurchaseAmount = @QC_PurchaseAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN PurchaseAmount*-1 ELSE PurchaseAmount END),0) , @QC_PresellAmount = @QC_PresellAmount + ISNULL(SUM(CASE WHEN xTypeID in (3,4,9) THEN (PresellPrice * Quantity) *-1 ELSE (PresellPrice * Quantity) END),0) FROM V_DPL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(DAY, AuditingDate, @DPM_EndDate) < 0 AND DATEDIFF(SS, AuditingDate, @BeginDate) > 0 --统计本期的出入库数据,包含开始时刻的数据 SELECT CASE WHEN xTypeID=2 THEN ''(''+ Join_Name +'')''+''入库'' WHEN xTypeID=3 THEN ''(''+ Join_Name +'')''+''退库'' WHEN xTypeID=4 THEN ''(''+ Join_Name +'')''+''发药'' WHEN xTypeID=5 THEN ''(''+ Join_Name +'')''+''退药'' WHEN xTypeID=6 THEN ''(''+ Join_Name +'')''+''损益'' WHEN xTypeID=7 THEN ''(''+ Join_Name +'')''+''盘点'' WHEN xTypeID=8 THEN ''(''+ Join_Name +'')''+''调入'' WHEN xTypeID=9 THEN ''(''+ Join_Name +'')''+''调出'' END AS xTypeName , xTypeID , IDENTITY(int, 2,1) AS xRowNum , BatchNO , Quantity , PurchasePrice , PresellPrice , PurchaseAmount , (PresellPrice * Quantity) PresellAmount , AuditingDate , BillNO INTO #TEMP_DPL FROM V_DPL1 WHERE BCK01=@BCK01 AND BBY01=@BBY01 AND DATEDIFF(SS, AuditingDate, @BeginDate) <= 0 AND DATEDIFF(SS, AuditingDate, @EndDate) >= 0 ORDER BY AuditingDate INSERT #TEMP_DPMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 0, ''上期结转'',null,null,null,1,null,null, null,null,null, null,null,null, ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DPL WHERE xTypeID <> 3 AND xTypeID <> 4 AND xTypeID <> 5 AND xTypeID <> 9 AND xTypeID <> 6 AND xTypeID <> 7 AND xTypeID <> 10 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, Quantity, PurchaseAmount, PresellAmount, null,null,null FROM #TEMP_DPL WHERE xTypeID = 3 OR xTypeID = 4 OR xTypeID = 9 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DPL WHERE xTypeID = 5 UNION --盘点单、损益单、调价单要单独设置 SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, Quantity, PurchaseAmount, PresellAmount, null,null,null, null,null,null FROM #TEMP_DPL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity >= 0 UNION SELECT xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, null,null,null, -Quantity, -PurchaseAmount, -PresellAmount, null,null,null FROM #TEMP_DPL WHERE (xTypeID = 6 OR xTypeID = 7) AND Quantity < 0 --计算各行数据的期末结存数 DECLARE DPL_List_Cursor CURSOR FOR SELECT xRowNum, ISNULL(BQR_Quantity,0)-ISNULL(BQC_Quantity,0) AS Quantity, ISNULL(BQR_PurchaseAmount,0)-ISNULL(BQC_PurchaseAmount,0) AS PurchaseAmount , ISNULL(BQR_PresellAmount,0)-ISNULL(BQC_PresellAmount,0) AS PresellAmount FROM #TEMP_DPMX WHERE xRowNum <> 1 ORDER BY xRowNum OPEN DPL_List_Cursor FETCH NEXT FROM DPL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount WHILE @@FETCH_STATUS = 0 BEGIN SET @QC_Quantity = ISNULL(@QC_Quantity,0) + @Quantity SET @QC_PurchaseAmount = ISNULL(@QC_PurchaseAmount,0) + @PurchaseAmount SET @QC_PresellAmount = ISNULL(@QC_PresellAmount,0) + @PresellAmount UPDATE M SET M.QM_Quantity=@QC_Quantity, M.QM_PurchaseAmount=@QC_PurchaseAmount, M.QM_PresellAmount=@QC_PresellAmount FROM #TEMP_DPMX M WHERE xRowNum=@xRowNum FETCH NEXT FROM DPL_List_Cursor INTO @xRowNum, @Quantity, @PurchaseAmount, @PresellAmount END CLOSE DPL_List_Cursor DEALLOCATE DPL_List_Cursor --合计 INSERT #TEMP_DPMX(xTypeID, xTypeName, BillNO, BatchNO, AuditingDate, xRowNum, PurchasePrice, PresellPrice, BQR_Quantity, BQR_PurchaseAmount, BQR_PresellAmount, BQC_Quantity, BQC_PurchaseAmount, BQC_PresellAmount, QM_Quantity, QM_PurchaseAmount, QM_PresellAmount) SELECT 100, ''本期合计'',null,null,null,MAX(xRowNum) + 1,null,null, SUM(BQR_Quantity), SUM(BQR_PurchaseAmount), SUM(BQR_PresellAmount), SUM(BQC_Quantity), SUM(BQC_PurchaseAmount), SUM(BQC_PresellAmount), ISNULL(@QC_Quantity,0), ISNULL(@QC_PurchaseAmount,0), ISNULL(@QC_PresellAmount,0) FROM #TEMP_DPMX --SELECT @BBY01 AS 药品ID,@BCK01 AS 药库ID,* FROM #TEMP_DPMX order by xRowNum SELECT xRowNum AS 序号 ,AuditingDate AS 日期 --,xTypeID AS 单据类型 ,BillNo AS 凭证号 ,xTypeName AS 摘要 ,PurchasePrice AS 进货价 ,PresellPrice AS 预售价 ,BQR_Quantity AS 本期_增加数量 ,BQR_PurchaseAmount AS 本期_增加进价金额 ,BQR_PresellAmount AS 本期_增加预售金额 ,BQC_Quantity AS 本期_减少数量 ,BQC_PurchaseAmount AS 本期_减少进价金额 ,BQC_PresellAmount AS 本期_减少预售金额 ,QM_Quantity AS 期末_数量 ,QM_PurchaseAmount AS 期末_进价金额 ,QM_PresellAmount AS 期末_预售金额 ,BatchNO AS 批号 FROM #TEMP_DPMX order by xRowNum drop table #TEMP_DPL drop table #TEMP_DPMX<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;BCK01&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/><Ie FD="BBY06" CA="规格" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000021' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000024' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000024') begin --插入 Declare @Report_Id_663 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_663 out Declare @Report_Id_663_CateID int Set @Report_Id_663_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_663, 'HO.DPQuery.S.000024', '病人已发药查询', Null, Null, @Report_Id_663_CateID, 1, 3, 100, 0, Null, '2011-05-09 14:45:53', '2012-01-12 15:55:04', Null, ' A1F0FD4DBC09D12991E19528C1296A1DDECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int , @bam01 varchar(1000) SET @vaa04 =:vaa04 SET @BDate =:BDate SET @EDate =:EDate SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @bce03 =:bce03 set @flag=:flag set @bam01=:bam01 select value into #bam from dbo.split(@bam01,'','') select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ5 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ7 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag>=0 order by 编号<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>select distinct bce03 ,abbrp from bce1</Sql><HD><Ie FD="bce03" WD="100"/></HD><QF><Ie FD="bce03" WE="7"/><Ie FD="abbrp" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Multi="1" MultiS="1"><Sql>select * from bam1</Sql></Grid></Configs> ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' A1F0FD4DBC09D12991E19528C1296A1DDECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int , @bam01 varchar(1000) SET @vaa04 =:vaa04 SET @BDate =:BDate SET @EDate =:EDate SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @bce03 =:bce03 set @flag=:flag set @bam01=:bam01 select value into #bam from dbo.split(@bam01,'','') select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ5 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ7 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag>=0 order by 编号<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>select distinct bce03 ,abbrp from bce1</Sql><HD><Ie FD="bce03" WD="100"/></HD><QF><Ie FD="bce03" WE="7"/><Ie FD="abbrp" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Multi="1" MultiS="1"><Sql>select * from bam1</Sql></Grid></Configs> ' where Code='HO.DPQuery.S.000024' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000025' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000025') begin --插入 Declare @Report_Id_664 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_664 out Declare @Report_Id_664_CateID int Set @Report_Id_664_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_664, 'HO.DPQuery.S.000025', '病人待发药查询', Null, Null, @Report_Id_664_CateID, 1, 3, 100, 0, Null, '2011-05-09 14:45:53', '2012-01-12 15:55:11', Null, ' 5600EE27EB160D2F4609641857A5FA69DECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int SET @vaa04 =:vaa04 SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @bce03 =:bce03 set @flag=:flag select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间, ''合计'' 转置 from V_VAJ4 where VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间, ''合计'' 转置 from V_VAJ6 where VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag>=0 order by 编号<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>select distinct bce03 ,abbrp from bce1</Sql><HD><Ie FD="bce03" WD="100"/></HD><QF><Ie FD="bce03" WE="7"/><Ie FD="abbrp" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院 ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' 5600EE27EB160D2F4609641857A5FA69DECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int SET @vaa04 =:vaa04 SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @bce03 =:bce03 set @flag=:flag select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间, ''合计'' 转置 from V_VAJ4 where VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间, ''合计'' 转置 from V_VAJ6 where VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and BCE03B like @bce03 +''%'' and @flag>=0 order by 编号<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>select distinct bce03 ,abbrp from bce1</Sql><HD><Ie FD="bce03" WD="100"/></HD><QF><Ie FD="bce03" WE="7"/><Ie FD="abbrp" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院 ' where Code='HO.DPQuery.S.000025' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000026' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000026') begin --插入 Declare @Report_Id_665 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_665 out Declare @Report_Id_665_CateID int Set @Report_Id_665_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_665, 'HO.DPQuery.S.000026', '药房发药工作量查询', Null, Null, @Report_Id_665_CateID, 1, 3, 100, 0, Null, '2011-07-27 10:27:37', '2012-01-12 15:55:21', Null, ' DBD001CA05A4EFEF4631257AF7BCB51Fdeclare @dept varchar(20),@bdate datetime,@edate datetime set @dept = :dept set @bdate = :bdate set @edate = :edate select convert(varchar(10),AuditingDate,120) 发药日期,Dispenser 配药人,Sender 核发人 ,count(distinct a.BillID) 发药笔数 ,count(1) 药品条数 ,sum(b.RetailAmount) 零售金额 from V_DPD1_FULL a join V_DPD2_FULL b on a.BillID=b.BillID and a.bck01=b.bck01 where datediff(day,@bdate,AuditingDate)>=0 and datediff(day,@edate,AuditingDate)<=0 AND a.bck01 = @dept group by convert(varchar(10),AuditingDate,120),Dispenser,Sender order by convert(varchar(10),AuditingDate,120),Dispenser,SenderSELECT --不要改变列顺序 BCK01, --部门Id REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 > 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' DBD001CA05A4EFEF4631257AF7BCB51Fdeclare @dept varchar(20),@bdate datetime,@edate datetime set @dept = :dept set @bdate = :bdate set @edate = :edate select convert(varchar(10),AuditingDate,120) 发药日期,Dispenser 配药人,Sender 核发人 ,count(distinct a.BillID) 发药笔数 ,count(1) 药品条数 ,sum(b.RetailAmount) 零售金额 from V_DPD1_FULL a join V_DPD2_FULL b on a.BillID=b.BillID and a.bck01=b.bck01 where datediff(day,@bdate,AuditingDate)>=0 and datediff(day,@edate,AuditingDate)<=0 AND a.bck01 = @dept group by convert(varchar(10),AuditingDate,120),Dispenser,Sender order by convert(varchar(10),AuditingDate,120),Dispenser,SenderSELECT --不要改变列顺序 BCK01, --部门Id REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 > 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B ' where Code='HO.DPQuery.S.000026' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000027' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000027') begin --插入 Declare @Report_Id_687 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_687 out Declare @Report_Id_687_CateID int Set @Report_Id_687_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_687, 'HO.DPQuery.S.000027', '麻醉、精神药品消耗查询', Null, Null, @Report_Id_687_CateID, 1, 3, 100, 0, Null, '2011-05-09 14:45:53', '2013-01-25 11:51:00', Null, ' 78FC38B3E239A039DB725A3498077010DECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int , @bam01 varchar(1000) SET @vaa04 =:vaa04 SET @BDate =:BDate SET @EDate =:EDate SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @flag=:flag set @bam01=:bam01 select value into #bam from dbo.split(@bam01,'','') select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ5 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ7 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and @flag>=0<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Multi="1" UseW="1" MultiS="1"><Sql>select * from bam1 where bam01&gt;=''2''</Sql></Grid></Configs> ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' 78FC38B3E239A039DB725A3498077010DECLARE @BDate datetime,--开始时间 @EDate datetime, --截至时间 @vaa04 varchar(20), --姓名 @BBY05 varchar(500), --药品名称 @BCK03 varchar(20) , ----病区 @bce03 varchar(20), @flag int , @bam01 varchar(1000) SET @vaa04 =:vaa04 SET @BDate =:BDate SET @EDate =:EDate SET @BBY05 =:BBY05 SET @BCK03 =:BCK03 set @flag=:flag set @bam01=:bam01 select value into #bam from dbo.split(@bam01,'','') select VAA03 病历号, VAA05 姓名, BCK03C [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ5 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03C like @bck03 + ''%'' and @flag<=0 union all select VAA04 病历号, VAA05 姓名, BCK03A [病区/科室], BCE03B 医师, BBY04 编号, BBY05 药品, BBY06 规格, VAJ25 发药数量, VAJ35 单位, VAJ33 单价, VAJ36 金额, vaj51 发药时间 from V_VAJ7 a join bag1 b on a.bby01=b.bby01 join bbt1 c on b.bbx01=c.bbx01 join #bam d on c.bam01=d.value where datediff(day,vaj51,@bdate)<=0 and datediff(day,vaj51,@edate)>=0 and VAA05 like @vaa04 + ''%'' AND BBY04 LIKE @BBY05 + ''%'' and bck03a like @bck03 + ''%'' and @flag>=0<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1" UseW="1" FFUse="1"><Sql>select distinct bby04,bby05,bby06 from bby1 a join bcl1 b on b.bby01=a.bby01 where BDN01 &lt; ''4''</Sql><HD><Ie FD="bby04" CA="编号" WD="100"/><Ie FD="bby05" CA="名称" WD="100"/><Ie FD="bby06" WD="100"/></HD><QF><Ie FD="a.bby04" WE="7"/><Ie FD="a.bby05" WE="7"/><Ie FD="b.abbrw" WE="7"/><Ie FD="b.abbrp" WE="7"/><Ie FD="bby06" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from bck1</Sql><HD><Ie FD="bck03" WD="100"/></HD><QF><Ie FD="bck02" WE="7"/><Ie FD="bck03" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Head="1"><Sql>select * from vaa1</Sql><HD><Ie FD="vaa05" CA="姓名" WD="100"/></HD><QF><Ie FD="vaa04" WE="7"/><Ie FD="vaa05" WE="7"/><Ie FD="abbrp" WE="7"/><Ie FD="abbrw" WE="7"/></QF></Grid></Configs>0=全院 -1=门诊 1=住院<?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid Multi="1" UseW="1" MultiS="1"><Sql>select * from bam1 where bam01&gt;=''2''</Sql></Grid></Configs> ' where Code='HO.DPQuery.S.000027' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000011' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000011') begin --插入 Declare @Report_Id_1103 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_1103 out Declare @Report_Id_1103_CateID int Set @Report_Id_1103_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_1103, 'HO.DPQuery.S.000011', '药房药品发药查询', Null, Null, @Report_Id_1103_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2015-01-28 10:44:13', Null, ' 8D70120F09C6F424743A321E45843698DECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , SUM(A.Quantity4) AS 药房发药单_数量, SUM(A.VAJ38A) AS 药房发药单_零价金额 , SUM(A.Quantity5) AS 药房退药单_数量, SUM(A.VAJ38B) AS 药房退药单_零价金额 , SUM(A.Quantity4) - SUM(A.Quantity5) AS 实际发药_数量 , SUM(A.VAJ38A) + SUM(A.VAJ38B) AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY A.BCK01, A.BBY01, A.BBY04, A.BBY05, A.BBY06, A.Unit, A.BBE02, A.BAP02, A.BAX03, A.BDO03 DROP TABLE #TMP_DPDDECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号 , SUM(A.Quantity4) AS 药房发药单_数量, SUM(A.VAJ38A) AS 药房发药单_零价金额 , SUM(A.Quantity5) AS 药房退药单_数量, SUM(A.VAJ38B) AS 药房退药单_零价金额 , SUM(A.Quantity4) - SUM(A.Quantity5) AS 实际发药_数量 , SUM(A.VAJ38A) + SUM(A.VAJ38B) AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY A.BCK01, A.BBY01, A.BBY04, A.BBY05, A.BBY06, A.Unit, A.BBE02, A.BAP02, A.BAX03, A.BDO03, A.BatchNo DROP TABLE #TMP_DPDDECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号, A.DeptID AS 部门ID, A.部门名称, A.AuditingDate AS 记帐时间 , A.Quantity4 AS 药房发药单_数量, A.VAJ38A AS 药房发药单_零价金额 , A.Quantity5 AS 药房退药单_数量, A.VAJ38B AS 药房退药单_零价金额 , A.Quantity4 - A.Quantity5 AS 实际发药_数量 , A.VAJ38A + A.VAJ38B AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 , A.BAG15 AS 批准文号, A.ProduceDate AS 生产日期, A.ExpiryDate AS 有效期至 , A.DPK_ID AS 批次号, A.Assessor AS 记帐人, A.BillNO AS 单号, A.Accepter AS 领药人, A.Dispenser AS 批准人 , A.Remark AS 备注 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' 8D70120F09C6F424743A321E45843698DECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , SUM(A.Quantity4) AS 药房发药单_数量, SUM(A.VAJ38A) AS 药房发药单_零价金额 , SUM(A.Quantity5) AS 药房退药单_数量, SUM(A.VAJ38B) AS 药房退药单_零价金额 , SUM(A.Quantity4) - SUM(A.Quantity5) AS 实际发药_数量 , SUM(A.VAJ38A) + SUM(A.VAJ38B) AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY A.BCK01, A.BBY01, A.BBY04, A.BBY05, A.BBY06, A.Unit, A.BBE02, A.BAP02, A.BAX03, A.BDO03 DROP TABLE #TMP_DPDDECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03 FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号 , SUM(A.Quantity4) AS 药房发药单_数量, SUM(A.VAJ38A) AS 药房发药单_零价金额 , SUM(A.Quantity5) AS 药房退药单_数量, SUM(A.VAJ38B) AS 药房退药单_零价金额 , SUM(A.Quantity4) - SUM(A.Quantity5) AS 实际发药_数量 , SUM(A.VAJ38A) + SUM(A.VAJ38B) AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY A.BCK01, A.BBY01, A.BBY04, A.BBY05, A.BBY06, A.Unit, A.BBE02, A.BAP02, A.BAX03, A.BDO03, A.BatchNo DROP TABLE #TMP_DPDDECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号, A.DeptID AS 部门ID, A.部门名称, A.AuditingDate AS 记帐时间 , A.Quantity4 AS 药房发药单_数量, A.VAJ38A AS 药房发药单_零价金额 , A.Quantity5 AS 药房退药单_数量, A.VAJ38B AS 药房退药单_零价金额 , A.Quantity4 - A.Quantity5 AS 实际发药_数量 , A.VAJ38A + A.VAJ38B AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 , A.BAG15 AS 批准文号, A.ProduceDate AS 生产日期, A.ExpiryDate AS 有效期至 , A.DPK_ID AS 批次号, A.Assessor AS 记帐人, A.BillNO AS 单号, A.Accepter AS 领药人, A.Dispenser AS 批准人 , A.Remark AS 备注 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000011' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000012' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000012') begin --插入 Declare @Report_Id_1104 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_1104 out Declare @Report_Id_1104_CateID int Set @Report_Id_1104_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_1104, 'HO.DPQuery.S.000012', '药房药品发药明细查询', Null, Null, @Report_Id_1104_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2015-01-28 10:44:27', Null, ' E505B0857A8EB296E51CC293E8A7C3B3DECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号, A.DeptID AS 部门ID, A.部门名称, A.AuditingDate AS 记帐时间 ,A.vaj38A , A.Quantity4 AS 药房发药单_数量, A.VAJ38A AS 药房发药单_零价金额 , A.Quantity5 AS 药房退药单_数量, A.VAJ38B AS 药房退药单_零价金额 , A.Quantity4 - A.Quantity5 AS 实际发药_数量 , A.VAJ38A + A.VAJ38B AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 , A.BAG15 AS 批准文号, A.ProduceDate AS 生产日期, A.ExpiryDate AS 有效期至 , A.DPK_ID AS 批次号, A.Assessor AS 记帐人, A.BillNO AS 单号, A.Accepter AS 领药人, A.Dispenser AS 批准人 , A.Remark AS 备注 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, Null, 1, 0) end else --更新 begin update Report_Objects set Config=' E505B0857A8EB296E51CC293E8A7C3B3DECLARE @PharmacyId varchar(10) , @BBY05 varchar(50) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BBY05= :BBY05 set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 --4.药房发药单 SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.BCK01 = @PharmacyId and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1 A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' UNION ALL SELECT B.BCK01, A.BillNO, A.DeptID , CASE WHEN A.DeptID=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = A.DeptID) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM DPD1_2 A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 JOIN DPK1 K ON K.ID = B.DPK_ID WHERE B.Quantity < 0 AND B.BCK01 = @PharmacyId and A.AuditingDate BETWEEN @BeginDate AND @EndDate AND Y.BBY05 like @BBY05 + ''%'' SELECT A.BBY04 AS 药品_编号, A.BBY05 AS 药品_品名, A.BBY06 AS 药品_规格, A.Unit AS 单位 , A.BatchNo AS 产品批号, A.DeptID AS 部门ID, A.部门名称, A.AuditingDate AS 记帐时间 ,A.vaj38A , A.Quantity4 AS 药房发药单_数量, A.VAJ38A AS 药房发药单_零价金额 , A.Quantity5 AS 药房退药单_数量, A.VAJ38B AS 药房退药单_零价金额 , A.Quantity4 - A.Quantity5 AS 实际发药_数量 , A.VAJ38A + A.VAJ38B AS 实际发药_零价金额 , A.BBE02 AS 产地, A.BAP02 AS 剂型, A.BAX03 AS 收入项目, A.BDO03 AS 药品分类 , A.BAG15 AS 批准文号, A.ProduceDate AS 生产日期, A.ExpiryDate AS 有效期至 , A.DPK_ID AS 批次号, A.Assessor AS 记帐人, A.BillNO AS 单号, A.Accepter AS 领药人, A.Dispenser AS 批准人 , A.Remark AS 备注 FROM #TMP_DPD A WHERE 部门名称 LIKE @BCK03 + ''%'' DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid><Sql>DECLARE @BCK01 int SET @BCK01 = &lt;PharmacyId&gt; SELECT Y.BBY01 , Y.BBY04 , Y.BBY05 , Y.BBY06 , Y.BBE02 FROM BBY1 Y join (SELECT CASE BAU01 WHEN 51 THEN ''1'' --西药房 WHEN 53 THEN ''2'' --成药房 WHEN 52 THEN ''3'' --中药房 ELSE ''0'' END BAU01 FROM BAZ1 WHERE BCK01 = @BCK01) U ON U.BAU01 = Y.BDN01 JOIN BCL1 L ON L.BBY01 = Y.BBY01 AND L.BCL04 = 1</Sql><HD><Ie FD="BBY04" CA="编码" WD="100"/><Ie FD="BBY05" CA="品名" WD="100"/></HD><QF><Ie FD="Y.BBY05" WE="7"/><Ie FD="L.ABBRP" WE="7"/><Ie FD="L.ABBRW" WE="7"/></QF></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000012' end GO --删除旧记录 --delete from Report_Objects where Code='HO.DPQuery.S.000020' --删除脚本内容 IF not EXISTS(SELECT * FROM Report_Objects WHERE code='HO.DPQuery.S.000020') begin --插入 Declare @Report_Id_1105 int Exec Core_NewId 'Report_Objects', 'id', @Report_Id_1105 out Declare @Report_Id_1105_CateID int Set @Report_Id_1105_CateID = (select id from Report_Categories where code='HIS.12') insert into Report_Objects(ID,Code,Name,Description,Password,CategoryID,xType,Classification,ProductID,ProgramID,ElementID,CreateDate,UpdateDate,ISSUANCEDATE,Config,SetupPath,IsMenu,Enabled,GroupName,Authorized,RefreshInterval) Values(@Report_Id_1105, 'HO.DPQuery.S.000020', '药房药品发药收入帐(财务专用)', Null, Null, @Report_Id_1105_CateID, 1, 3, 100, 0, Null, '2011-07-07 09:14:34', '2015-01-28 10:45:57', Null, ' FF6D666CC00505485510126DE659856DDECLARE @PharmacyId varchar(10) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 DECLARE @BAX01 int , @BAX03 varchar(64) --4.药房发药单 SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM V_DPD1_FULL A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE (B.BCK01 = @PharmacyId or @PharmacyId=0) and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE (B.BCK01 = @PharmacyId or @PharmacyId=0) and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE B.Quantity < 0 AND (B.BCK01 = @PharmacyId or @PharmacyId=0) and A.AuditingDate BETWEEN @BeginDate AND @EndDate UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE B.Quantity < 0 AND (B.BCK01 = @PharmacyId or @PharmacyId=0) and A.AuditingDate BETWEEN @BeginDate AND @EndDate CREATE TABLE #TEMP0( 部门名称 varchar(64) ) SELECT 部门名称 , BAX03 AS 收入项目 , SUM(PurchaseAmount4) - SUM(PurchaseAmount5) 发药进价金额 , SUM(VAJ38A) + SUM(VAJ38B) 发药零价金额 INTO #TEMP1 FROM #TMP_DPD WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY 部门名称 , BAX03 INSERT #TEMP0(部门名称) SELECT DISTINCT 部门名称 FROM #TEMP1 DECLARE Form_Col_Cursor CURSOR FOR SELECT DISTINCT B.BAX01,B.BAX03 FROM BBY1 A, BAX1 B WHERE A.BAX01 = B.BAX01 AND A.BDN01 IN (''1'',''2'',''3'') ORDER BY B.BAX01 OPEN Form_Col_Cursor FETCH NEXT FROM Form_Col_Cursor INTO @BAX01, @BAX03 WHILE @@FETCH_STATUS = 0 BEGIN EXEC(''ALTER TABLE #TEMP0 ADD ''+@BAX03+''_发药进价金额 FLOAT'') EXEC(''ALTER TABLE #TEMP0 ADD ''+@BAX03+''_发药零价金额 FLOAT'') EXEC(''UPDATE M SET M.''+@BAX03+''_发药零价金额=N.发药零价金额 FROM #TEMP0 M, #TEMP1 N WHERE M.部门名称=N.部门名称 AND N.收入项目=''''''+@BAX03+'''''' '') EXEC(''UPDATE M SET M.''+@BAX03+''_发药进价金额=N.发药进价金额 FROM #TEMP0 M, #TEMP1 N WHERE M.部门名称=N.部门名称 AND N.收入项目=''''''+@BAX03+'''''' '') FETCH NEXT FROM Form_Col_Cursor INTO @BAX01, @BAX03 END CLOSE Form_Col_Cursor DEALLOCATE Form_Col_Cursor EXEC(''ALTER TABLE #TEMP0 ADD 发药进价金额合计 FLOAT'') EXEC(''ALTER TABLE #TEMP0 ADD 发药零价金额合计 FLOAT'') EXEC(''UPDATE M SET M.发药零价金额合计=(SELECT SUM(发药零价金额) FROM #TEMP1 N WHERE M.部门名称=N.部门名称) FROM #TEMP0 M'') EXEC(''UPDATE M SET M.发药进价金额合计=(SELECT SUM(发药进价金额) FROM #TEMP1 N WHERE M.部门名称=N.部门名称) FROM #TEMP0 M'') SELECT * FROM #TEMP0 DROP TABLE #TEMP0 DROP TABLE #TEMP1 DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ', '药房查询', 1, 1, '', 1, 0) end else --更新 begin update Report_Objects set Config=' FF6D666CC00505485510126DE659856DDECLARE @PharmacyId varchar(10) , @BeginDate varchar(20) , @EndDate varchar(20) , @BCK03 varchar(50) set @PharmacyId= :PharmacyId set @BeginDate= :BeginDate set @EndDate= :EndDate set @BCK03= :BCK03 DECLARE @BAX01 int , @BAX03 varchar(64) --4.药房发药单 SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate INTO #TMP_DPD FROM V_DPD1_FULL A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE (B.BCK01 = @PharmacyId or @PharmacyId=0) and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , B.Quantity AS Quantity4, B.PurchasePrice AS PurchasePrice4, B.PurchaseAmount AS PurchaseAmount4 , K.PresellPrice AS PresellPrice4, K.PresellPrice * B.Quantity AS PresellAmount4 , B.VAJ33 AS VAJ33A, B.VAJ38 AS VAJ38A , 0 AS Quantity5, 0 AS PurchasePrice5, 0 AS PurchaseAmount5 , 0 AS PresellPrice5, 0 AS PresellAmount5 , 0 AS VAJ33B, 0 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE (B.BCK01 = @PharmacyId or @PharmacyId=0) and B.Quantity > 0 and A.AuditingDate BETWEEN @BeginDate AND @EndDate --5.药房退药单 UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE B.Quantity < 0 AND (B.BCK01 = @PharmacyId or @PharmacyId=0) and A.AuditingDate BETWEEN @BeginDate AND @EndDate UNION ALL SELECT B.BCK01, A.BillNO, F.BCK01C , CASE WHEN F.BCK01C=0 THEN ''零售'' ELSE (SELECT BCK03 FROM BCK1 WHERE BCK1.BCK01 = F.BCK01C) END 部门名称 , B.VAA01, B.VAJ01, B.BBY01, Y.BBY04, Y.BBY05, Y.BBY06, B.Unit, B.PackSize, B.BatchNo , 0, 0, 0, 0, 0 , 0, 0 , -B.Quantity, B.PurchasePrice, -B.PurchaseAmount, K.PresellPrice, -K.PresellPrice * B.Quantity , B.VAJ33 AS VAJ33B, B.VAJ38 AS VAJ38B , A.AuditingDate, A.Assessor , A.Accepter, A.Dispenser, A.Sender, A.Ratifier, A.TradeID, B.DPK_ID, B.Remark , Y.BBE02, T.BAP02, Q.BAX03, O.BDO03, G.BAG15 , K.ProduceDate, K.ExpiryDate FROM V_DPD1_FULL A join DPD2_2 B ON A.BCK01 = B.BCK01 and A.BillID = B.BillID JOIN BBY1 Y ON Y.BBY01 = B.BBY01 Left join BAX1 Q ON Q.BAX01 = Y.BAX01 join BAG1 G ON G.BBY01 = B.BBY01 left join BBX1 X ON X.BBX01 = G.BBX01 left join BBT1 T ON T.BBX01 = X.BBX01 left join BDO1 O ON O.BDO01 = X.BDO01 left join DPK1 K ON K.ID = B.DPK_ID left join V_VAJ_FULL f on b.VAJ01=f.VAJ01 WHERE B.Quantity < 0 AND (B.BCK01 = @PharmacyId or @PharmacyId=0) and A.AuditingDate BETWEEN @BeginDate AND @EndDate CREATE TABLE #TEMP0( 部门名称 varchar(64) ) SELECT 部门名称 , BAX03 AS 收入项目 , SUM(PurchaseAmount4) - SUM(PurchaseAmount5) 发药进价金额 , SUM(VAJ38A) + SUM(VAJ38B) 发药零价金额 INTO #TEMP1 FROM #TMP_DPD WHERE 部门名称 LIKE @BCK03 + ''%'' GROUP BY 部门名称 , BAX03 INSERT #TEMP0(部门名称) SELECT DISTINCT 部门名称 FROM #TEMP1 DECLARE Form_Col_Cursor CURSOR FOR SELECT DISTINCT B.BAX01,B.BAX03 FROM BBY1 A, BAX1 B WHERE A.BAX01 = B.BAX01 AND A.BDN01 IN (''1'',''2'',''3'') ORDER BY B.BAX01 OPEN Form_Col_Cursor FETCH NEXT FROM Form_Col_Cursor INTO @BAX01, @BAX03 WHILE @@FETCH_STATUS = 0 BEGIN EXEC(''ALTER TABLE #TEMP0 ADD ''+@BAX03+''_发药进价金额 FLOAT'') EXEC(''ALTER TABLE #TEMP0 ADD ''+@BAX03+''_发药零价金额 FLOAT'') EXEC(''UPDATE M SET M.''+@BAX03+''_发药零价金额=N.发药零价金额 FROM #TEMP0 M, #TEMP1 N WHERE M.部门名称=N.部门名称 AND N.收入项目=''''''+@BAX03+'''''' '') EXEC(''UPDATE M SET M.''+@BAX03+''_发药进价金额=N.发药进价金额 FROM #TEMP0 M, #TEMP1 N WHERE M.部门名称=N.部门名称 AND N.收入项目=''''''+@BAX03+'''''' '') FETCH NEXT FROM Form_Col_Cursor INTO @BAX01, @BAX03 END CLOSE Form_Col_Cursor DEALLOCATE Form_Col_Cursor EXEC(''ALTER TABLE #TEMP0 ADD 发药进价金额合计 FLOAT'') EXEC(''ALTER TABLE #TEMP0 ADD 发药零价金额合计 FLOAT'') EXEC(''UPDATE M SET M.发药零价金额合计=(SELECT SUM(发药零价金额) FROM #TEMP1 N WHERE M.部门名称=N.部门名称) FROM #TEMP0 M'') EXEC(''UPDATE M SET M.发药进价金额合计=(SELECT SUM(发药进价金额) FROM #TEMP1 N WHERE M.部门名称=N.部门名称) FROM #TEMP0 M'') SELECT * FROM #TEMP0 DROP TABLE #TEMP0 DROP TABLE #TEMP1 DROP TABLE #TMP_DPD<?xml version="1.0"?> <Configs Ver="1"><Win CA="库房" SZ="1"/><Grid><Sql>SELECT --不要改变列顺序 BCK01, --部门Id CASE WHEN iType=3 THEN 2 WHEN iType=4 THEN 0 ELSE iType END AS iType, --0.中西药 1.西药 2.中药 REPLACE(Description1, ''\)'', '')'') Description1--描述显示供用户看 FROM ( SELECT BCK01, CASE WHEN 成药房 &gt; 0 THEN 1 ELSE 西药房 END + 中药房 AS iType, BCK02 + '' ''+BCK03+''(''+ CASE WHEN 西药房 = 1 THEN ''西药\'' ELSE '''' END+ CASE WHEN 成药房 = 2 THEN ''成药\'' ELSE '''' END+ CASE WHEN 中药房 = 3 THEN ''中药'' ELSE '''' END+'')'' AS Description1 FROM ( SELECT BCK01, BCK02, BCK03, ISNULL((SELECT 1 FROM BAZ1 z WHERE BAU01=''51'' and z.BCK01 = k.BCK01),0) AS ''西药房'', ISNULL((SELECT 2 FROM BAZ1 z WHERE BAU01=''53'' and z.BCK01 = k.BCK01),0) AS ''成药房'', ISNULL((SELECT 3 FROM BAZ1 z WHERE BAU01=''52'' and z.BCK01 = k.BCK01),0) AS ''中药房'' FROM BCK1 k WHERE exists(SELECT * FROM BAZ1 z WHERE z.BCK01 = k.BCK01 and z.BAU01 in (''51'',''52'',''53'')) ) A ) B</Sql><HD><Ie FD="BCK01" CA="部门ID" WD="100"/><Ie FD="Description1" CA="描述" WD="100"/></HD></Grid></Configs><?xml version="1.0"?> <Configs Ver="1"><Win SZ="1"/><Grid AWS="1"><Sql>select BCK01, BCK02, BCK03, ABBRP, ABBRW from BCK1</Sql><HD><Ie FD="BCK02" CA="部门编码" WD="100"/><Ie FD="BCK03" CA="部门名称" WD="100"/></HD><QF><Ie FD="BCK03" WE="7"/><Ie FD="ABBRP" WE="7"/><Ie FD="ABBRW" WE="7"/></QF></Grid></Configs> ' where Code='HO.DPQuery.S.000020' end GO