sql的一个问题

zenowolf 2009-02-25 06:59:40
table a
fa zp cp num 主键(fa ,zp )
0 001 1-1 10
1 001 2-1 2
2 001 3-1 10
0 002 1-4 8
1 002 2-6 10
2 002 3-7 8
table b
zp num1 num2 num3
001 10 500 400


=>table c
cp num1 num2 num3
1-1 10*10 500*10 400*10
2-1 10*2 500*2 400*2
3-1 10*10 500*10 400*10

用sql写出来,请教各位。
...全文
100 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ks_reny 2009-02-25
  • 打赏
  • 举报
回复

select a.cp,b.num1*a.num,b.num2*a.num,b.num3*a.num from a,b
where a.cp=b.cp
chengdishuai 2009-02-25
  • 打赏
  • 举报
回复

SQL code改两个字母也不会。。偶真不知道你能做什么了。

---------------------------------
-- Author: liangCK 小梁
---------------------------------

--> 生成测试数据: @tb1
DECLARE @tb1 TABLE (fa INT,zp VARCHAR(3),cp VARCHAR(3),num INT)
INSERT INTO @tb1
SELECT 0,'001','1-1',10 UNION ALL
SELECT 1,'001','2-1',2 UNION ALL
SELECT 2,'001','3-1',10 UNION ALL
SELECT 0,'002','1-4',8 UNION ALL…
zenowolf 2009-02-25
  • 打赏
  • 举报
回复

join 等价于 inner join 吗?
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
本人新手。。。谢谢 以上各位的回复。。。
mmp~7 2009-02-25
  • 打赏
  • 举报
回复
按zp分组再和table2连接不就得了
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
不好意思啊
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
哦哦。。
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zzxap 的回复:]
没看清楚。。
SELECT
A.zp,
A.num*B.num1 AS num1,
A.num*B.num2 AS num2,
A.num*B.num3 AS num3
FROM @tb1 AS A
JOIN @tb2 AS B
ON A.zp=B.zp
[/Quote]
我要 cp 的记录 不是 zp
liangCK 2009-02-25
  • 打赏
  • 举报
回复
改两个字母也不会。。偶真不知道你能做什么了。

---------------------------------
-- Author: liangCK 小梁
---------------------------------

--> 生成测试数据: @tb1
DECLARE @tb1 TABLE (fa INT,zp VARCHAR(3),cp VARCHAR(3),num INT)
INSERT INTO @tb1
SELECT 0,'001','1-1',10 UNION ALL
SELECT 1,'001','2-1',2 UNION ALL
SELECT 2,'001','3-1',10 UNION ALL
SELECT 0,'002','1-4',8 UNION ALL
SELECT 1,'002','2-6',10 UNION ALL
SELECT 2,'002','3-7',8

--> 生成测试数据: @tb2
DECLARE @tb2 TABLE (zp VARCHAR(3),num1 INT,num2 INT,num3 INT)
INSERT INTO @tb2
SELECT '001',10,500,400

--SQL查询如下:

SELECT
A.cp,
A.num*B.num1 AS num1,
A.num*B.num2 AS num2,
A.num*B.num3 AS num3
FROM @tb1 AS A
JOIN @tb2 AS B
ON A.zp=B.zp

/*
cp num1 num2 num3
---- ----------- ----------- -----------
1-1 100 5000 4000
2-1 20 1000 800
3-1 100 5000 4000

(3 行受影响)
*/
liangCK 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 raineo 的回复:]
引用 3 楼 liangCK 的回复:
SQL code---------------------------------
-- Author: liangCK 小梁
---------------------------------

--> 生成测试数据: @tb1
DECLARE @tb1 TABLE (fa INT,zp VARCHAR(3),cp VARCHAR(3),num INT)
INSERT INTO @tb1
SELECT 0,'001','1-1',10 UNION ALL
SELECT 1,'001','2-1',2 UNION ALL
SELECT 2,'001','3-1',10 UNION ALL
SELECT 0,'002','1-4',8 UNION ALL
SELECT 1,'…
[/Quote]

NND..你把查询的SELECT A.zp改为A.cp不就得了。
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zzxap 的回复:]
SQL code
上面的错了
这样
SELECT a.zp,b.num1,b.num2,b.num3 from tablea a left join tableb b on a.zp=b.zp
[/Quote]
明显你的也不对
zzxap 2009-02-25
  • 打赏
  • 举报
回复
没看清楚。。
SELECT
A.zp,
A.num*B.num1 AS num1,
A.num*B.num2 AS num2,
A.num*B.num3 AS num3
FROM @tb1 AS A
JOIN @tb2 AS B
ON A.zp=B.zp
zzxap 2009-02-25
  • 打赏
  • 举报
回复
[CODE=SQL]
上面的错了
这样
SELECT a.zp,b.num1,b.num2,b.num3 from tablea a left join tableb b on a.zp=b.zp
[/CODE]
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liangCK 的回复:]
SQL code---------------------------------
-- Author: liangCK 小梁
---------------------------------

--> 生成测试数据: @tb1
DECLARE @tb1 TABLE (fa INT,zp VARCHAR(3),cp VARCHAR(3),num INT)
INSERT INTO @tb1
SELECT 0,'001','1-1',10 UNION ALL
SELECT 1,'001','2-1',2 UNION ALL
SELECT 2,'001','3-1',10 UNION ALL
SELECT 0,'002','1-4',8 UNION ALL
SELECT 1,'002','2-6',10 UNION ALL
SELECT 2,'0…
[/Quote]

我现在是要 将 zp换成 cp
table b
zp num1 num2 num3
001 10 500 400
=>table c
cp num1 num2 num3
1-1 10*10 500*10 400*10
2-1 10*2 500*2 400*2
3-1 10*10 500*10 400*10
zzxap 2009-02-25
  • 打赏
  • 举报
回复
[CODE=SQL]
SELECT a.cp,b.num1,b.num2,b.num3 from tablea a left join tableb b on a.cp=b.cp
[/CODE]
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
我现在是要 将 zp换成 cp
table b
zp num1 num2 num3
001 10 500 400
=>table c
cp num1 num2 num3
1-1 10*10 500*10 400*10
2-1 10*2 500*2 400*2
3-1 10*10 500*10 400*10
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
能教下吗?
liangCK 2009-02-25
  • 打赏
  • 举报
回复
---------------------------------
-- Author: liangCK 小梁
---------------------------------

--> 生成测试数据: @tb1
DECLARE @tb1 TABLE (fa INT,zp VARCHAR(3),cp VARCHAR(3),num INT)
INSERT INTO @tb1
SELECT 0,'001','1-1',10 UNION ALL
SELECT 1,'001','2-1',2 UNION ALL
SELECT 2,'001','3-1',10 UNION ALL
SELECT 0,'002','1-4',8 UNION ALL
SELECT 1,'002','2-6',10 UNION ALL
SELECT 2,'002','3-7',8

--> 生成测试数据: @tb2
DECLARE @tb2 TABLE (zp VARCHAR(3),num1 INT,num2 INT,num3 INT)
INSERT INTO @tb2
SELECT '001',10,500,400

--SQL查询如下:

SELECT
A.zp,
A.num*B.num1 AS num1,
A.num*B.num2 AS num2,
A.num*B.num3 AS num3
FROM @tb1 AS A
JOIN @tb2 AS B
ON A.zp=B.zp

/*
zp num1 num2 num3
---- ----------- ----------- -----------
001 100 5000 4000
001 20 1000 800
001 100 5000 4000

(3 行受影响)

*/
zenowolf 2009-02-25
  • 打赏
  • 举报
回复
不怎么会。。
liangCK 2009-02-25
  • 打赏
  • 举报
回复
JOIN一下吧。

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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