假设数据库中有表a和表b,表a中有字段kucun,id,表b中有字段guige,id,goodid,怎样实现将表b中goodid相同的记录的guige的值的和赋给表a中的kucun
时间: 2024-05-23 11:15:17 浏览: 18
可以通过以下SQL语句实现:
UPDATE a
SET a.kucun = (
SELECT SUM(b.guige)
FROM b
WHERE b.goodid = a.id
)
WHERE EXISTS (
SELECT 1
FROM b
WHERE b.goodid = a.id
)
这个SQL语句将表a中kucun的值更新为对应表b中goodid相同的记录的guige值的总和。
相关问题
将下列代码修改为封装对象形式:public void goodsAdd(HttpServletRequest req, HttpServletResponse res) { //根据商品信息保存到数据库 int catelog_id = Integer.parseInt(req.getParameter("catelog_id")); String bianhao = req.getParameter("bianhao"); String mingcheng = req.getParameter("mingcheng"); String jieshao = req.getParameter("jieshao"); String pinpai = req.getParameter("pinpai"); String fujian = req.getParameter("fujian"); int jiage = Integer.parseInt(req.getParameter("jiage")); int kucun = 0; String del = "no"; String sql = "insert into t_goods(catelog_id,bianhao,mingcheng,jieshao,pinpai,fujian,jiage,kucun,del) " + "values(?,?,?,?,?,?,?,?,?)"; Object[] params = { catelog_id, bianhao, mingcheng, jieshao, pinpai, fujian, jiage, kucun, del }; DB mydb = new DB(); mydb.doPstm(sql, params); mydb.closed(); req.setAttribute("message", "操作成功"); req.setAttribute("path", "goods?type=goodsMana"); String targetURL = "/common/success.jsp"; dispatch(targetURL, req, res); }
public void goodsAdd(HttpServletRequest req, HttpServletResponse res) {
// 创建 Goods 对象并设置属性值
Goods goods = new Goods();
goods.setCatelogId(Integer.parseInt(req.getParameter("catelog_id")));
goods.setBianhao(req.getParameter("bianhao"));
goods.setMingcheng(req.getParameter("mingcheng"));
goods.setJieshao(req.getParameter("jieshao"));
goods.setPinpai(req.getParameter("pinpai"));
goods.setFujian(req.getParameter("fujian"));
goods.setJiage(Integer.parseInt(req.getParameter("jiage")));
goods.setKucun(0);
goods.setDel("no");
// 将 Goods 对象插入数据库
String sql = "insert into t_goods(catelog_id,bianhao,mingcheng,jieshao,pinpai,fujian,jiage,kucun,del) "
+ "values(?,?,?,?,?,?,?,?,?)";
Object[] params = {goods.getCatelogId(), goods.getBianhao(), goods.getMingcheng(), goods.getJieshao(), goods.getPinpai(),
goods.getFujian(), goods.getJiage(), goods.getKucun(), goods.getDel()};
DB mydb = new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "goods?type=goodsMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
KUCUN<-data.frame(KUCUN) yuexiaoshou<-data.frame(yuexiaoshou) colnames(KUCUN)<-c('日期','商品编号','销售数量','进货数量','进货单价') colnames(yuexiaoshou)<-c('日期','月销售金额') KUCUN<-subset(KUCUN,进货单价>=0) KUCUN$剩余数量 <- KUCUN$进货数量 - KUCUN$销售数量 KUCUN$库存结存金额 <- KUCUN$剩余数量 * KUCUN$进货单价 KUCUN$剩余数量[KUCUN$剩余数量 < 0] <- 0
这段代码的作用是先将 KUCUN 和 yuexiaoshou 数据框转化为数据框形式,并设置列名。
接下来,使用 `subset` 函数将进货单价小于0的行从 KUCUN 数据框中删除。然后,计算剩余数量、库存结存金额,并将剩余数量小于0的行的剩余数量设置为0。
具体来说,该代码按照以下步骤进行:
1. 将 KUCUN 和 yuexiaoshou 数据框转化为数据框形式,并设置列名。
```R
KUCUN<-data.frame(KUCUN)
yuexiaoshou<-data.frame(yuexiaoshou)
colnames(KUCUN)<-c('日期','商品编号','销售数量','进货数量','进货单价')
colnames(yuexiaoshou)<-c('日期','月销售金额')
```
2. 使用 `subset` 函数将进货单价小于0的行从 KUCUN 数据框中删除。
```R
KUCUN<-subset(KUCUN,进货单价>=0)
```
3. 计算剩余数量、库存结存金额,并将剩余数量小于0的行的剩余数量设置为0。
```R
KUCUN$剩余数量 <- KUCUN$进货数量 - KUCUN$销售数量
KUCUN$库存结存金额 <- KUCUN$剩余数量 * KUCUN$进货单价
KUCUN$剩余数量[KUCUN$剩余数量 < 0] <- 0
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)