SQl优化 现有数据记录条码字段barcode

大飞为 2017-08-03 05:04:14
语句为: SELECT max(ID) id ,SBarcode FROM TBSaleBarcode GROUP BY SBarcode

拿到最新的ID
数据 id rerk SBarcode
1 xx 001
2 xx 002
3 xx 001
我想拿到 id=3
现在这句SQL 可以实现但是数据一多 CPU炸了。。100%的占用率
...全文
465 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
OwenZeng_DBA 2017-08-04
  • 打赏
  • 举报
回复
引用 11 楼 u014138682 的回复:
[quote=引用 10 楼 z10843087 的回复:] @u014138682 有:SBarcode 包含 ID的索引吗? 表的数据量多大
大概450W[/quote] 测试了下,450W有索引的话,速度还是很快。你执行语句的执行计划可以发上来看看。CPU 太高可能最大并行度设置的太大了
大飞为 2017-08-04
  • 打赏
  • 举报
回复
引用 10 楼 z10843087 的回复:
@u014138682 有:SBarcode 包含 ID的索引吗? 表的数据量多大
大概450W
OwenZeng_DBA 2017-08-04
  • 打赏
  • 举报
回复
@u014138682 有:SBarcode 包含 ID的索引吗? 表的数据量多大
大飞为 2017-08-04
  • 打赏
  • 举报
回复
引用 4 楼 u014138682 的回复:
[quote=引用 3 楼 sinat_28984567 的回复:] [quote=引用 2 楼 u014138682 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢[/quote] 这个语句得到的数据不对吧,这样每个SBarcode除了id最小的一条,其他的都得到了,我觉得楼主那个代码已经非常简洁了[/quote]
引用 3 楼 sinat_28984567 的回复:
[quote=引用 2 楼 u014138682 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢[/quote] 这个语句得到的数据不对吧,这样每个SBarcode除了id最小的一条,其他的都得到了,我觉得楼主那个代码已经非常简洁了[/quote] 但是有那么几秒 CPU 占用会高潮 100%。。[/quote]
引用 6 楼 z10843087 的回复:
@大飞为 索引有建吗?没有的话,建一个:SBarcode 包含 ID
都有索引
吉普赛的歌 2017-08-04
  • 打赏
  • 举报
回复
/*
SELECT  max(ID) id ,SBarcode FROM TBSaleBarcode GROUP BY SBarcode 

 拿到最新的ID 
数据 id rerk SBarcode   
         1   xx     001
         2   xx     002
         3   xx     001 
我想拿到 id=3 
*/
--设计测试表,插入 100 万条测试数据
USE tempdb
GO
IF OBJECT_ID('TBSaleBarcode') IS NOT NULL DROP TABLE TBSaleBarcode
CREATE TABLE TBSaleBarcode(id INT PRIMARY KEY,SBarcode NVARCHAR(20))
;WITH cte AS (
	SELECT sv.number  FROM [master].dbo.spt_values AS sv WHERE sv.[type]='P' AND sv.number BETWEEN 1 AND 1000
)
, cte2 AS(
	SELECT ROW_NUMBER() OVER (ORDER BY a.number) AS rid FROM cte AS a CROSS APPLY cte AS b
)
INSERT INTO TBSaleBarcode(id,SBarcode)
SELECT t.rid,CASE WHEN t.rid%3=0 THEN '003' WHEN t.rid%2=0 THEN '002' ELSE '001' END 
FROM cte2 AS t

SET STATISTICS IO ON
SET STATISTICS TIME ON
--无索引
SELECT SBarcode,MAX(id) AS maxId FROM TBSaleBarcode GROUP BY SBarcode
/*
SBarcode	maxId
002	1000000
003	999999
001	999997
*/
/*
(3 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Workfile'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'TBSaleBarcode'。扫描计数 1,逻辑读取 2853 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 SQL Server 执行时间:
   CPU 时间 = 390 毫秒,占用时间 = 407 毫秒。
*/

CREATE INDEX ix_TBSaleBarcode_SBarcode_include_id ON TBSaleBarcode(SBarcode) INCLUDE(id)
--有索引
SELECT SBarcode,MAX(id) AS maxId FROM TBSaleBarcode GROUP BY SBarcode
/*
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。

(3 行受影响)
表 'TBSaleBarcode'。扫描计数 1,逻辑读取 2489 次,物理读取 0 次,预读 12 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 SQL Server 执行时间:
   CPU 时间 = 219 毫秒,占用时间 = 215 毫秒。
*/
试了一下, 十万条数据也不慢啊。 加索引也只能快一点点。 本想用索引视图,但有sum就没办法用索引视图了,可惜。 你的数据有多少条?
吉普赛的歌 2017-08-03
  • 打赏
  • 举报
回复
mark 一下, 有空再看看
OwenZeng_DBA 2017-08-03
  • 打赏
  • 举报
回复
@大飞为 索引有建吗?没有的话,建一个:SBarcode 包含 ID
OwenZeng_DBA 2017-08-03
  • 打赏
  • 举报
回复
为什么每次要把所有的数据取出来,数据量多大,可以分几次取不?
大飞为 2017-08-03
  • 打赏
  • 举报
回复
引用 3 楼 sinat_28984567 的回复:
[quote=引用 2 楼 u014138682 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢[/quote] 这个语句得到的数据不对吧,这样每个SBarcode除了id最小的一条,其他的都得到了,我觉得楼主那个代码已经非常简洁了[/quote]
引用 3 楼 sinat_28984567 的回复:
[quote=引用 2 楼 u014138682 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢[/quote] 这个语句得到的数据不对吧,这样每个SBarcode除了id最小的一条,其他的都得到了,我觉得楼主那个代码已经非常简洁了[/quote] 但是有那么几秒 CPU 占用会高潮 100%。。
二月十六 2017-08-03
  • 打赏
  • 举报
回复
引用 2 楼 u014138682 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:] 是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢[/quote] 这个语句得到的数据不对吧,这样每个SBarcode除了id最小的一条,其他的都得到了,我觉得楼主那个代码已经非常简洁了
大飞为 2017-08-03
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
是要获取所有SBarcode 对应的最大id值吗?
是的 我换成了 select * from TBSaleBarcode as a where not exists ( select 1 from TBSaleBarcode as b where b.SBarcode=a.SBarcode and b.ID > a.ID ) 这种 CPU 是降下来了但是很慢
二月十六 2017-08-03
  • 打赏
  • 举报
回复
是要获取所有SBarcode 对应的最大id值吗?
V5.1之后的修改(2006-01-20 至 2007-1-27) ----------------------------------------------------------------------------- 1.POS日结由于pos_bill表单的出现两条BillId=0记录,导致日结后查不到Pos明细,而主单会有的错码,修改存储过程pcdDayAuditPayed,出错会回滚;但财务日是在主程序中处理,还是提示日结成功。 2.增加多一个帐单号格式,原来只有按日期格式(帐套参数中增加一个选择)。 3.为酒店进销存增加一个日结,日结后根据酒店销售情况来减库存(加过程pcdDayAuditHotel, 注意:进销存里的货品编码要跟酒店里的酒水编码要一样) 2006-03-07 1、 出仓的时候增加客户欠款提示。 2、 O_Outstore表中增加多一个字段[DeliveryManID] [int]表示送货员,出仓的时候增加送货员选择, 注意:因为出仓增加送货员,所以超市日结也要更改(日结过程pcdDayAuditPayed.sql) 3、 增加送货员汇总表和明细表(vSaleDetail.sql、RP_DeliverySale_Total.sql种RP_DeliverySale_Detail.sql) 2006-03-09 1、I_InStoreD表中增加二个字段[pro_date] [smalldatetime]( 生产日期)和[valid_date] [smalldatetime] (有效期) 2006-03-14 修改触发器tUpIReturn.sql、tUpOReturn.sql,修正现金退货问题 2006-03-19 1、 财务管理中增加经营统计表,打印报表名称为“经营统计表.frf” 2、增加数据表Sales.sql和过程RP_SaleTotal_ByMonth.sql、RP_Management_Total.sql 2006-03-21 货品资料中增加条码标签表和价格标签表 2006-03-25 进仓和出仓中的选择货品中增加”全选”和按仓位查找(修改视图vInGoods) 2006-04-05 1、 货品资料查询中同一条件名可以增加多次,例如:货品等于0001, 货品等于0003, 货品等于0008,那么会找到0001、0003、0008的货品 2、查询符号中比较符号增加“不包含” 2006-04-07 1、增加库存盘点汇总表和库存盘点明细表(新增视图vCheckDetail和存储过程RP_Check_Total、RP_Check_Detail) 2、增加商品出入库明细表(新增视图RP_AllIO_Detail和存储过程vAllDetail) 2006-04-12 1、 修正修改其它出入仓类型有错的问题 2、 修正其它出入仓删除行仓库数就不对的错误 2006-05-18 1、前台收银中增加营业员选择 2、POS管理中增加营业员销售汇总表(RP_PosEmpTotal)和营业员销售明细表(RP_PosEmpDetail) 2006-06-09 1、 增加表GoodsValid,记录货品的有效期 2、 所有明细表中加上有效期字段valid_date[smalldatetime] 3、 增加视图vGoodsValid,过程RP_GoodsValid 4、 系统参数中增加是否使用有效期 2006-06-15 1、 修正前台收银中因挂单造成单号重复的问题 2、 修正银行明细表期初(末)金额不对的问题(修改过程RP_Bank_Detail.sql,) 2006-06-15 1、 前台收银中增加显示积分功能(UP_VIPCards_TotalAmount.sql) 2006-06-23 1、 修改不要提示框时,输入货品的不显示。 2、 超市前台收银加按购买数量来积分(用Clientid表示购买的总数量,要把Clientid的空值改为0,语句UP_VIPCards_TotalAmount.sql已将Clientid=0) 2006-06-24 针对佛冈进行改动: 1. 修改vPurchasedetal,加入AreaId,用于进行货品进货统计。并在QueryFields中加入AreaId 2. 修改进货,加入返利、存款两个字段 3. 配置文件,=30 2006-06-26 进货、销售和仓库管理增加权限管理(新增,修改,删除),复制执行文件要进入授权里面点高级(权限写到Operator表中rights字段中)。 2006-07-01 1、 修正月结和期末金额不对问题(pcdMonthAudit.sql,RP_Bank_Detail.sql) 2、 修正因为增加有效期后导致不能月结问题(修改过程pcdDayAuditPayed.sql) 2006-07-02 为佛岗增加多一个供应商按单明细表,可以查询存款,返利,和实收款(RP_VendorPurchase_ByInvono.sql) 2006-07-06 销售查询中增加按地区查询(vSaleDetail.sq,UP_QueryFields_area.sql,up_queryfields502.sql) 2006-07-24 1、 修正转仓中没选择调入仓也能保存的漏洞。 2、 新增货品资料删除的时候同时删除库存 2006-07-29 1、 加入生产单I_PRODUCE, I_PRODUCED。 2、 新增加报表生产消费原料明细表、汇总表 2006-08-03 添香饼家 1、 加入领料单O_Outstore1, O_Outstore1D, O_Outstore1DM,In_BillCode.sql(领料的时候可以选择配料单货品,这时电脑会自动减配料单里明细货品的库存) 2、 新增加生产单报表In_AppRptList.sql 2006-08-11 1、 货品资料默认按编码排列 2、 供应商、客户和货品资料在出入仓的时候也可以新增 3、 新增领料单汇总表和明细表(vOutStore1Detail.sql、RP_OutStore1_Total.sql、RP_OutStore1_Detail.sql) 2006-08-11 1、新增仓库调拨汇总表和明细表(vMoveDetail.sql.sql、RP_Move_Total.sql、RP_Move_Detail.sql) 2006-08-14 重新对生产配料、消耗原料表进行调整vUsedMatrial 2006-08-24 修正出仓单修改提示错误 2006-08-27 1、 增加领料单查找(RP_O_Outstore1) 2、 增加配料单明细表(vMaterial,RP_Material_Detail) 3、 修正领料单先进入选择货品再改单位就不会有价钱 2006-08-28 1、 配料单增加单价,D_Material表的最后面加上字段BillAmt[money],D_MaterialD表的disc前面加上Price[numeric,18,4] 2006-09-18 1、进货管理中增加供应商日进货汇总表(RP_DayIn_Total_byVendor.sql) 2006-09-19 1、 修正领料单删除件库存不会增加问题 2、 修正领料单查询会重复的问题(vOutStore1Detail.sql) 2006-09-25 1、pos管理中增加特价单(In_BillCode.sql, O_FlowPrice.sql,RP_O_FlowPrice.sql,RP_FlowPrice_Detail.sql,in_queryfields021.sql,vGoods.sql) 2006-09-27 1、系统修护中增加数据校验,校验当前库存是否正确,前提是中间没有删除过数据(vOtherInOutDetail.sql,pcdMonthAudit.sql,oldONHAND.sql,pcdInsOldOnHand.sql,vInOutDetail.sql,errONHAND.sql,CheckOnHandQty.sql,vAllDetail.sql) 2006-10-28 1、进仓和出仓增加折扣功能(华帝提出,ALTER_InOutDisc.sql, pcdUpdateMasterAmt1.sql) 2006-12-19 1、数据清理的时候加多一个同步功能,解决备份到优盘后再修改再备份,优盘的数据没变的问题。 2007-01-05 1、其它出入库:选择收发货单位时会变成货品资料(第一次没问题,保存再选择就会变成货品资料)。 2007-1-27 1、 服装版由于采用clientDataset,判断单的修改、新增状态不一样导致修改单时增加一行,并不对之进行处理。 a) 同时判断Query和CleintDataset的状态 b) 保存时重新读入颜色,保证状态的一致。 V7.18.4的修改(Build20070913) ----------------------------------------------------------------------------- 2007-4-19 1、 出入仓增加折扣功能(更新帐单金额pcdUpdateMasterAmt1.sql) 2、 系统参数中新增出仓是否可以显示进货价 2007-4-20 1、 基本资料管理的编码,点保存新增,编码自动加1 2、 货品资料的分类、单位为前一个值。 2007-4-20 由于库存的可能出现不对,增加库存校验checkOnhandQty、库存修复功能pcdRepairOnhand 2007-4-26 考虑初始建货品资料建档比较麻烦,作了如下改进: 1、 goodsbase收集条形码商品资料库 2、 输入条形码时自动显示名称、单位、规格,无需手工再输入。 2007-5-4 修改了货品类别销售毛利汇总表,只对大类进行统计RP_GoodsTypeProfit,并加入视图vGoodsType 2007-5-10 会员卡管理中加上初始积分(增加字段InitIntegral) 2007-5-12 批发销售中件要3个批发价(增加字段SpePrice3),客户资料中增加售价级别,新增表Ptype 2007-5-24 库存管理中增加实际库存数量汇总表(RP_GoodsInOut_Total2.sql) 2007-5-28 1、 新增产地表Parea,记录内部还是外部产品 2、 Pos_BillD表的字段disc的类型由int改为numeric(4,1),因为长青的折扣有3.5% 3、 QUERYFIELDS中增加产地查询条件(in_queryfields_004.sql),商品销售汇总和明细表中增加产地(RP_GoodsSale_Total.sql,vSaleDetail.sql) 4、 2007-5-31 1、 修正日结后,全部POS单全是归到9这个客户上 2、 修正后台POS单不会显示客户名 2007-6-9 1、POS收银中新增连接到本地数据功能,这样断网后也可以继续销售。 2、BDE别名用FHE2POS2 3、更新pos.mdb 2007-7-31 1、POS收银中新增大包装处理,memcode表示箱条形码,speprice3箱单价 2、要重新执行vGoods.sql 2007-8-4 1、修正会员卡不能前一条,后一条问题 2、修正新增不会跳到最后一条 3、前台收银增加输入电话也可以当会员卡使用 2007-8-27 V7.18_4: 1、 出仓可以打印客户名称。(用备注来代替,先选择出仓更改客户名称) 2、 可以取消客户价。 3、 可以设置库存缺库提示 2007-8-27 V7.18_4: 4、 积分方法: i. Vipcards中 Amount: 现金余额(可理解为客户的预付款) InitIntegral 初始积分(初始积分录入后,不可再修改) TotalAmount 消费总金额 UsedCount 已用次数 Integral 现在的积分 TotalIntegral 总积分 ii. 单品积分、金额积分、件数积分 5、 不同的产品积分不同 在Goods.amtTip中设置,如果要小数,将此字段改为numeric(5.2)即可 2007-9-04 V7.18_4: 6、 会员卡的零钱处理(小于5元):针对消费的找零问题(一般不会大于5元),超市管理者希望对小余额储存,下次可以多退少补。 实现方法:1、收款时,记录存入会员卡的小余额。如总消费99.3,现付款100元,余下的0.7记入Vipcards.Amount中。 当下次来消费时,可以进行使用。如消费50.5,现付款50元,此时可用余额显示0.7,不进行找零。完成本次收款。余额为0.2元。 2、报表的反映。分为三个内容:a)消费总金额 b)现金支付金额 realAmount c)卡支付金额(负为客户欠商家的钱),可以保存在pos_bill.cardAmount 2007-9-13 V7.18_4: 7、 Pos_Bill字段说明:billAmt POS单金额 TakeAmt:应收金额(可能小于单金额,由于抹零) CardAmount:用会员卡储值支付的金额,对于零钱一次全部用完 CashAmount:本次实收现金(多于支付的,存入会员卡) BankAmount:用信用卡支付的金额。 =============================================== 2007-10-10 V7.18_5: 1、加入会员卡储值Deposit。 2、储值卡类型:cCard_type 3、储值到 vipCards.Amount. 4、相应的报表RP_Deposit_Detail储值明细表、RP_Deposit_Detail储值汇总表。 2007-10-30 V7.18_5: 1、重新进行加密狗的处理,去掉.sys文件,加入.ini文件。 2、具体安装与路径无关。 2007-11-8 V7.18_5: 1、修改注册: 2007-11-3 V7.18_4: 1、 地区新增多级功能,AREA中增加字段code (varchar 12),name(varchar 50) 2007-11-13 V7.18_4: 2、 修正商品销售明细表中不能按类别查询 3、 修正第一次输入大包装条形码后价钱为0的问题 2007-11-19 V7.18_4: 1、修正批发销售时二次输入同样货品的小单位条形码时单位就不对 2、客户价为0时就取货品资料里的价 2007-12-08 V7.18_4: 1、交班金额不对,修改pcdChgTurn. 交班计算金额对于多行的POS销售明细,会计多次。 2007-12-15 V7.18_4: 1、视图区分进货开单与现款进货, 升级视图vPurchaseDetai 2007-12-15 V7.18_4: 1、增加收入支出平衡表, 新增过程RP_InCome_Expense.sql与添加收入支出平衡表.sql,可看每天资金的收支情况 2007-12-15 V7.18_4: 1、前台增加打印临时打开和关闭功能.p+回车 2.增加条码机类型fhsys.ini->[Barcode] BarcodeType=1(尖顶) BarcodeType=2(川田) 2007-12-20 V7.18_4: 1、更改数据联接,用fhsys.ini 2、增加自动启动数据库服务 2008-01-14 V7.18_4: 1、增加表VIPbalance,用来记录冲减积分的相关项目 2008-01-23 V7.18_4: 1、货品资料中增加型号,出入仓挑选货品中加型号查询vIngoods 2008-01-28 V7.18_4: 1、修正超市版新增货品资料时,不能输入大包装条码; 2、修正出入仓保存后单位单位选择没隐藏; 2008-02-23 V7.18_4: 1、修正费用开支保存错误;2、修正收入支出类别只能修第一行; 2008-02-27 V7.18_4: 1、会员卡消费汇总表加折后金额,即自动扣除导游提成金额后的金额累计RP_PosVIPTotal; 2、产品产地表中增加产地设置; 3.加上有效期单位tInsPos_BillD_长青.sql 2008-02-27 V7.18_4: 1、修正一天多次日结后日期会成第二天日期; 2008-03-08 V7.18_4: 1、前台改为用ADO连接fhsys.ini, 要升级POS.mdb; 2008-03-24 V7.18_4: 1、双汇的条码抢是串口的,用fhsys.ini->[Barcode]->BarcodeCom=0,0表示非串口,1是com1,2是com2; 2、[CusDisplay]->CusCom=1表示com1 2008-03-25 V7.18_4: 1、有些狗注册不了,修改注册方式; 2008-03-30 V7.18_4: 1、前台权限管理:如果此操作员没有权限就自动提示重新输入编码和密码 2008-04-01 V7.18_4: 1、修正UserType=102时利润就不对的问题 2008-04-14 V7.18_4: 1、增加一品多码功能(goods_multicode.sql); 2008-05-14 V7.18_4: 1、经常出现超时,修改exe文件和取单号过程pcdInvoNo.sql、pr_IDs.sql; V7.19的修改 ----------------------------------------------------------------------------- 2008-5-14 增加储值卡一卡通:储值卡采用rf32射频卡,将金额写入卡中,实现跨门店销售。详细操作如下: 1、 管理卡。管理卡中储存有本公司的储值卡密码,储值卡的使用必须先通过管理卡的密码检测。 2、 储值卡。密码为管理卡中设置 3、 初始化管理卡。读卡密码,不同公司不同,事先由软件设置。 4、 储值卡恢复到出厂设置。读将储值卡的密码写为初始出厂设置。写前须有管理卡密码授权。 5、 初始化储值卡。先读管理卡,以取得密码,再将此密码写入储值卡中,达到安全 6、 管理卡的密码变更。 A) 如果发现管理卡密码泄露,重设管理卡密码;同时要将以前的密码保存,否则旧卡变为不可读。 B) 清空旧卡密码 C) 再初始化即可。 D) 前台多种卡的并存。当读新卡时,先读新的管理卡,以获得安全认证。 7、 储值消费。不够金额,由现付补足。 8、 收银报表反映当班的现金、卡消费等。 9、 2008-05-29 V7.19: 1、前台增加赠送,如:*10-2表示买10送2。 2、增加优惠卷,优惠卷跟抹零合在一起 2008-06-10 V7.19: 1、超市101的当前明细表中隐藏小单位数量和金额 2008-06-10 V7.19: 1、帐套参数中增加系统信息,可以直接修改服务器信息和用户信息 2008-06-10 V7.19: 1、帐套参数中增加系统信息,可以直接修改服务器信息和用户信息 2008-06-25 V7.19: 1、修正库存上下限设置时,保存不了 2、订单完成情况,当实际完成量大于订单数量时,也可以反映出来 3、商品进货(销售)明细表里也加上“备注”字段(vSaleDetail.sql, RP_GoodsPurchase_Detail.sql vPurchaseDetail.sql) 4、修正前台赠送后,不能挂单 5、修正现款退货后,货款在现金明细表中归入到“收入”方,但在现金银行汇总表中又归入到“支出”方(RP_Bank_Total.sql, vBankExpense.sql, vBankIncome.sql) 2008-07-09 V7.19: 1、盘点单:明细表中增加当前库存数 2008-07-22 V7.19: 1、后台修正删除POS单后交班表没删除的问题; 2、缩小仓库调拨单窗口; 3、前台增加销售时不能关闭软件; 4、前台增加更改端口功能,在编码输入框中输入v2表示com2,v3表示com3; 5、修改交班表没优惠金额(pcdChgTurn.sql,alter_posturn.sql) 2008-07-28 V7.19: 1、前台修正按F6没特价 2、修正进货开单->选单没有交货日期 2008-08-02 V7.19: 1、新增总裁卡,每台机只能有一个总裁卡,将总裁卡的序号写到cfg.memo1。管理卡只用于门店,不可用于充值 2008-08-07 V7.19: 1、系统参数中增加POS小票打印功能设置 2008-08-10 V7.19: 1、前台添加会员卡密码,密码正确就可以使用卡余额,不对就只参积分; 2、累计积分到1000分后就自动送10元,fhsys.ini中增加VipIntegral=1000和VipChange=10; 3、积分赠送表VIPchange加字段price(ALTER_VIPchange.sql) 2008-08-11 V7.19: 1、会员加入密码,在会员资料的备注中。 2、会员未经过密码验证,不能用零钱储值和消费 3、加入显示余额 4、修改交班表 2008-08-11 V7.19: 1、会员零钱储值CardType=2,1是IC卡。 2、后台储值参数要选中,不能用零钱储值和消费 3、积分VipIntegral=1000,送VipChange=10元 4、交班时,收银应交数=营业额 - 卡付 2008-08-18 V7.19: 1、前台退货,相应会员的积分要减,此时不能存钱 2、修正备份会丢失数据, 2、点前单后单时将现款和开单分开 2008-08-20 V7.19: 1、修正断网销售和上传数据(按page up) 2008-08-23 V7.19: 1、POS大包装价,不分会员价 。另外注意:当日最后一班交班后,不能有消费,否则造成日结与交班金额不相对应。 2008-08-23 V7.19: 1、超市(101)规格可以修改 2、查找时对于编码按相似进行查,如01,只查前面是01的编码. 2008-08-26 V7.19: 1、超市(101)货品资料录入相关修改,做好价钱明了 2、主画面显示不同版 3、初始化库存针对超市隐藏双单位 4、前台批发零售的价钱错 5、加入启用帐套提示 2008-08-30 V7.20: 1、IC卡的加入折扣,范围为70-100%。折扣以零售价记,高于会员价促销价取会员价及促销价。积分系数为0不折。 2、普通会员卡,退货时要输入用户及密码。收银员不能退货,主管才行。 3、会员卡前台密码,收银员不能看。 4、修正现金银行汇总表和现金银行明细表的问题 (RP_Bank_Total.sql,RP_Cash_Detail.sql) 5、增加“会员卡POS单明细表”打印报表 (修改vCardsPOS.sql,RP_CardsPos.sql)和销售赠送明细表.frf和班次销售汇总表.frf 2008-09-16 V7.20: 1、超市(101)货品资料新增时资料库有,用osh登录自动保存新增。加快录入速度 2009-02-2 V7.21: 1、库存只用qty保存数量(零数),件=qty/规格,进价只用inprice(零数) 2、增加dataflowd保存操作的修改情况 3、菜单位置的变动 4、帐套启用后,不可修改系统信息的软件类型,双单位变动。在帐套清空后,可以重做此设置。 5、月末处理后(2009-1-31),月初为下一个日期开始计算,当日不可再做单。即当月进出数=2009-2-1到2009-2-28 2009-02-2 V7.21: 1、增加删除基本资料权限(不管发生单据与否,可以删除),无此权限,只能删除未发生业务的资料 2、未注册,清空高级权限 3、增加softtype软件类型表, softini软件设置表.用来进行不同软件的显示设置 所有功能。 4、不同的软件用不同的注册序号(在加密狗的不同区),有的功能未做区别。总经理狗可用 2009-03-25 V7.21: 1、更新直拨单,针对酒店仓库使用。
服装销售系统数据库设计 一:需求描述 某服装连锁店要开发一套服装销售管理软件,对日常的服装销售进行信息化管理,要 求该软件实现服装销售行业的采购订货、退货、前台零售、批发业务、促销管理、会 员管理、库存管理、库存盘点等各个业务流程,把服装销售行业的进货、退货、销售 、库存、财务等业务实现一体化管理。 开发该软件有两大部分工作要做:第一后台数据库的设计;第二前端界面功能开发。 现阶段我们要完成后台数据库的设计。为了方便起见,我们实现对服装销售核心业务 "销售管理"子模块的设计。该模块实现"服装的基础信息维护、服装销售、常见查询、 利润统计、销售冠军排名"等功能。 二:开发环境 开发工具:SQL Server2005 企业版。 三:技能点 (1)、在SQL Server中创建库、建表、建约束。 (2)、INSERT、UPDATE、DELETE、SELECT语句。 (3)、统计函数:如SUM、COUNT、AVG等。 (4)、多表关联查询。 (5)、GROUP By分组统计。 四:问题分析 为了实现服装销售管理,需要建立数据库及数据表对数据进行有效存储。经过分析, 涉及到的数据表至少有服装基础表和服装销售表。以下为服装基础表和服装销售表。 1. 服装基础表(clBaseInfo) "字段名称 "数据类型 "描述 " "SectionCode "varchar(5) "款号,服装款型编号,必填项。" " " "只能是5位字符,并且前两为是"" " " "MC"。如"MC201"。 " "BarCode "char(8) "服装条形码,服装的唯一标识," " " "主键。规则"款号+3位流水号"," " " "一款服装可能会有不同颜色或尺" " " "码。 " "clName "varchar(100"服装名称,必添项。 " " ") " " "Type "varchar(20)"服装类别。如男鞋、女鞋、上衣" " " "、裤子。 " "Brand "varchar(100"品牌,服装的品牌信息。 " " ") " " "Fabric "varchar(20)"面料。如"纯棉、皮、革、"默认" " " ""纯棉" " "clSize "varchar(20)"尺码。只能是"L、S、M、XL"中 " " " "的一种,因为L号较为常见,默 " " " "认为"L"。 " "Color "varchar(50)"颜色 " "SalesPrice "float "销售单价 " "InPrice "float "进货价格 " 表3.1 服装表(clBaseInfo) 2. 服装销售表(clSales) "字段名称 "数据类型 "描述 " "ID "int "标识列,主键。 " "ShopName "varchar(100"连锁店名,必填项。默认"人百" " ") "店" " "SalesMan "varchar(30)"销售员姓名 " "SalesDate "datetime "销售日期。默认为系统当天。 " "SalesCode "varchar(10)"销售单号,必填项。长度是10 " " " "位字符串。且前4位为"2010"," " " "中间2位为分店简码,后4位为 " " " "数字型流水号。 " "BarCode "char(8) "服装条形码。外键。 " "SalesCount "int "销售数量,必填项。数值范围 " " " "大于0. " "Rebeat "float "折扣,默认为1,代表不打折。" "payType "varchar(20)"付款方式:可以是"现金、银行" " " "卡、信誉卡、代金券",默认" " " " "现金" " "Total "money "实收金额 " 表3.2 服装销售表(clSales) 五:任务实现 1. 创建数据库 在本机D盘新建文件夹SalesProject,在SQL Server Managerment Studio中按要求创建数据库SalesDB,保存在SalesProject文件夹下。主数据库文件增 长率为12%,日志文件增长率为5%,并且日志文件最大为50M。 2. 创建数据表 (1)、在数据库中创建服装基础表clBaseInfo,逐一设置字段名、字段长度、数据 类型 等。 (2)、在数据库中创建服装销售表clSales。 3. 增加约束 根据表3.1说明部分要求,设置各列约束: (1)、必填项,表明该字段应添加非空约束。 (2)、服装条形码,为主键列,应增加主键约束。 (3)、有默认值的应增加默认约束。 (4)、款号列应配合LIKE关键字增加检查约束。 根据表3.2说明部分要求,设置各列约束: (1)、ID增加标识列约束,标识种子为1,标识增量为1;并设置主键约束。 (2)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧