管家婆软件孟 发表于 2020-8-27 19:40:33

真正彻底删除千方百剂的红字单据


--==首先提醒大家先备份数据库,如果不懂SQL的朋友还请不要轻易尝试。==--
--=========================================================--
--=====================真正彻底删除红字单据====================--
--=========================================================--
QFBJ软件中在做删除的时候并未真正删除数据库表的记录,只是做了删除标记。
以往使用的清除红字单据的方法
delete from billindex where redword=1 --清除了经营历程(红字单的表头)
update billindex set ifcheck='f' where redword='1' --隐藏了经营历程(红字单的表头)
为了节约资源,我还是喜欢将无用的记录彻底删除。
--=========================================================--
--1----删除红字单据的销售单明细----------
Delete SaleBill
From SaleBill,billindex
where SaleBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--2----删除红字单据的出入库记录明细------
Delete InOutstocktable
From InOutstocktable,billindex
where InOutstocktable.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--3-----删除红字单据的收款单明细-----
Delete From gatheringBill
From gatheringBill,billindex
where gatheringBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--4-----删除红字单据的付款单明细-----
Delete From PayBill
From PayBill,billindex
where PayBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--5----删除经营历程红字单据表头----------
Delete from billindex where redword=1 -- 注意这句需要最后执行,如果你以前执行过这一句那么前面的就不起作用了,还有办法,呵呵~请往下看~
--=========================================================--
以上5步共删除了五个表的销售、出入库以及收付款记录和表头,可以直接复制到查询分析器执行。
如果只执行1和4,则在经营历程中还能看到红字单据,双击(察看凭证),单据是空白的。
5是删除了经营历程中的红字单据。执行完这5步就彻底消失了。
--=========================================================--

如果你曾经只是执行过第5个语句,还想删除其他两个表的记录的话,可以用下面这个。
下面这4句可以完全替代上面的 1 - 4,也可以用这两句来删除。
--------删除红字单据的销售单明细---------
Delete From SaleBill
where SaleBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的出入库记录明细-----
Delete From InOutstocktable
where InOutstocktable.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的收款单明细-----
Delete From gatheringBill
where gatheringBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的付款单明细-----
Delete From PayBill
where PayBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')

--=====================我是蓝色的分隔线======================--
如果你的业务不止这些,用到的QFBJ的 功能较多,甚至全部。那么要删除就比较多了...我不一一写了,可以用这个,自己替换表名
--------删除各个表中红字单据的明细记录--------
Delete From 表名
Where billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')

---说明:将 表名 替换为下面列表中的任何表,就可以删除其中的红字单据明细了。
------------------------表名以及功能说明-----------------------
AdDebtBill --调帐单
AdjustJobNumberBill --批号修改单
AdPriceBill --库存成本调价单
BuyBackBill --采购退货单
BuyBill --采购入库单
BuyBackBill --采购退货单
CommissionBill --委托代销入库单、委托代销退货单、代销商品发货单
DisassembleBill --商品拆装单
gatheringBill --收款单
InOutBill --获赠单、赠送单、其他出库单、其他入库单
InOutstocktable --出、入库单
LoseBill --报损单
MoneyBill --费用单、其他收入单
MoveBill --同价移库单
MoveBjBill --变价移库单
MoveMoneyBill --现金银行转款单
overflowBill --报溢单
PayBill --付款单
PriceDiffBill --采购(销售)退补单、采购(销售)退货退补单
RetailBill --零售出库单、零售退货单详细药品信息
RetailBillIndex --零售出库单、零售退货单经手人等表头信息
ROtherBillIndex --处方单录入(表头信息)、处方药销售记录
ROtherMxBill --处方单(详细药品信息)
saleBackBill --销售退货单
SaleBill --销售出库单
SendBill --配送单、门店配送退货申请表、配送退回入库记录
TinyBill --药品拆零单
-------------删除经营历程红字单据表头--------------

Delete from billindex where redword=1
删除完各个单据后别忘了把表头也删了
(只要在删除完所有需要删除的表明细后,执行一次这句就可以了,不用每次都执行这句)
--=========================================================--


QFBJ中还有一些无用的不良数据,一起动手删了吧!看这个帖子:

页: [1]
查看完整版本: 真正彻底删除千方百剂的红字单据