问题可能比较鸡肋,初学不是很会
sql吧
全部回复
仅看楼主
level 1
wanwusangz 楼主
用第一个表里bookid下a1、a2、a3、a4各自的价格来计算第二个表里SUM列
2017年11月23日 03点11分 1
level 3
update B set SUM =12.3*a1+15.6*a2+10.9*a3+9.9*a4
2017年11月28日 13点11分 2
那类似这种的,列很多,A1、A2、...An总不能一个个来写吧,有没有快捷一点,语句简短的写法
2017年11月30日 00点11分
level 2
DECLARE @price1 INT;
DECLARE @price2 INT;
DECLARE @price3 INT;
DECLARE @price4 INT;
DECLARE @price5 INT;
SET @price1 = (SELECT price FROM #temptable1 WHERE bookid = 1);
SET @price2 = (SELECT price FROM #temptable1 WHERE bookid = 2);
SET @price3 = (SELECT price FROM #temptable1 WHERE bookid = 3);
SET @price4 = (SELECT price FROM #temptable1 WHERE bookid = 4);
SET @price5 = (SELECT price FROM #temptable1 WHERE bookid = 5);
UPDATE
#temptable2
SET
booksum = (book1 * @price1 + book2 * @price2 + book3
* @price3 + book4 * @price4 + book5 * @price5);
多少个书写多少个加法
除了这样写我想不到更好的办法
2017年11月30日 06点11分 3
level 2
如果表二设计为表3这样 就可以用join来操作了 那就不用那么麻烦
2017年11月30日 06点11分 4
level 2
SELECT
*, bookcum = a.price * b.bookcount
FROM
#temptable1 a
JOIN #temptable3 b
ON a.bookid = b.bookid;
这样就轻松多了 可以用join做关联操作
2017年11月30日 06点11分 5
level 2
这样可以完美实现
2017年12月01日 08点12分 6
level 1
设计数据库就不要这么设计,第二个表不要把第一个表的值做成列名去对照
2017年12月01日 09点12分 7
说得好 难怪我写起来感觉怪怪的
2017年12月01日 14点12分
level 2
如果 表2 的列数 比较少的 话,直接写死:
udpate table1 tab1
set tab1.sum = tab1.a1*12.3+ tab1.a2*15.9 +tab1.a3*10.9 +tab1.a4*9.9
2017年12月04日 08点12分 8
1