tb1:
----------------------
id zonge
1 100
2 200
3 300tb2:
----------------------
id Tb1_id name
1 1 王五
2 1 小四
3 2 大三
4 3 张三
5 3 李四问题:如何得出以下结果
-----------------------
id tb1_id name zonge
1 1 小四 50
2 2 大三 200
3 3 张三 150
4 3 李四 150
----------------------
id zonge
1 100
2 200
3 300tb2:
----------------------
id Tb1_id name
1 1 王五
2 1 小四
3 2 大三
4 3 张三
5 3 李四问题:如何得出以下结果
-----------------------
id tb1_id name zonge
1 1 小四 50
2 2 大三 200
3 3 张三 150
4 3 李四 150
解决方案 »
- [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt 怎么解决?
- 请问这个sql如何写,谢谢!
- 每次安装SQL SERVER 2005的时候都会重启
- varchar型数据插入到uniqueidentifier类型的字段
- 多表联结查询
- 数据是物理删除好还是直接做删除标记比较好?
- 执行存储过程的问题
- 大力等高手指点呀。。。在线等,最后10分呀。。
- 链接超时奇怪现象
- 一个sqlserver存储过程转oracle的语句
- varchar型变量,只保存一个汉字的话,为何宽度至少要设成2呢?按理说设成1就行呀?
- 一个sql语句的问题:如何将查询出的多列结果转置为一列!
-----------------------
id tb1_id name zonge
1 1 小四 50
2 2 大三 200
3 3 张三 150
4 3 李四 150 ====================================================
那這個結果是否還少了tb1_id=1的王五的50 ?
create table tb1(id int,zonge int)
insert into tb1 select 1,100
insert into tb1 select 2,200
insert into tb1 select 3,300create table tb2(id int,tb1_id int,name varchar(10))
insert into tb2 select 1,1,'王五'
insert into tb2 select 2,1,'小四'
insert into tb2 select 3,2,'大三'
insert into tb2 select 4,3,'張三'
insert into tb2 select 5,3,'李四'select tb2.*, convert(numeric(18,1),1.0*isnull(tb1.zonge,0)/a.num) as zonge
from tb2
left join tb1
on tb2.tb1_id=tb1.id
left join
(select tb1_id,count(*) as num from tb2 group by tb1_id) a
on tb2.tb1_id=a.tb1_id
/*
id tb1_id name zonge
----------- ----------- ---------- --------------------
1 1 王五 50.0
2 1 小四 50.0
3 2 大三 200.0
4 3 張三 150.0
5 3 李四 150.0
*/
drop table tb1,tb2
tb1相当于订票订单
tb2相当于退票订单
tb1中一个订单中可包含多个人,所以
tb2退票订单中有可能只退一个人的,那么这个订单就还有一个人是有效的
现在要求tb2退票订单中每个的金额