--删除旧记录
--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 成药库 > 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 = <StoreId>) 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 成药库 > 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 = <StoreId>) 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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <StoreId>
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 成药库 > 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 = <BCK01>
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 成药库 > 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 = <BCK01>
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 成药库 > 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 = <PharmacyId>
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 成药库 > 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 = <PharmacyId>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 成药房 > 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 = <BCK01>
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 < ''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 < ''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 < ''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 < ''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 < ''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>=''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 < ''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>=''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 成药房 > 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 = <PharmacyId>
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 成药房 > 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 = <PharmacyId>
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 成药房 > 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 = <PharmacyId>
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 成药房 > 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 = <PharmacyId>
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 成药房 > 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 成药房 > 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