注册 登录
编程论坛 SQL Server论坛

[新手求教]超市中调价语句

mmmran 发布于 2008-09-24 12:53, 1651 次点击
一个超市 现在要将一个供货商的商品在其的三个分店打八折销售
UPDATE 商品信息表 SET 零售价=零售价*(1-20%) where 供货商编码='168111111'
我现在这样只是调了整体的价格

要怎样才能实现只在其中两个分店打折呢 ?

该用怎样的语句关联两个表呢 ?

商品库存表中  有商品编码 店号 零售价 供货商编码  是不是可以改那个表 ?
8 回复
#2
yuxin13822008-09-24 14:05
在加一个条件啊:

UPDATE 商品信息表 SET 零售价=零售价*(1-20%) where 供货商编码='168111111' and (店号= '' or 店号 ='')
#3
师妃暄2008-09-24 14:09
#4
mmmran2008-09-24 14:38
商品信息表里没有 店号。。。。。。我也想知道如果要关联到其他表里的内容该用怎样的语句  谢谢楼上的了
#5
师妃暄2008-09-24 14:49
UPDATE 商品信息表 SET 零售价=零售价*(1-20%) LEFT JOIN 商品库存表 ON 商品信息表.供货商编码=商品库存表.供货商编码 where 商品信息表.供货商编码='168111111' and (商品库存表.店号= '' or 商品库存表.店号 ='')
#6
ting47632008-09-24 15:16
update xxb set xxb.零售价=xxb.零售价*(1-20%) from 商品信息表 xxb, 商品库存表 ccb where xxb.供货商编码=ccb.供货商编码
and xxb.供货商编码='168111111' and (ccb.店号= '' or ccb.店号 ='')
#7
徐强2008-09-24 16:22
这好像不是update的问题
#8
徐强2008-09-24 16:25
求商品价格的时候
select sum(数量*零售价*(case when 店号= '' or 店号 ='' then (1-0.2) else 1 end))  
因为只有这两个店打折   其余的都不打折  不能改商品表
还有一个事减0.2不是20%
#9
mmmran2008-09-26 09:17
先谢谢楼上的各位了,感谢版主的两次指点。大家提出的方法让才开始学SQL的小弟我学到了不少东西

20%就是0.2吧  我也在考虑这个问题 前面那样写似乎就成了凡是这两个店曾经进过货的(库存表里有的)就在商品表里把价格给改了 那样其他店也会是这个价格了
还有要是如果我要给这次调价限一个期限只在 2008.9.27-2008.10.5 之间生效 完了后又调回原价要回原价 该怎么写呢
1