求助!求一个表的SQL

terry850730 2007-07-18 10:59:30
有两个表
表A:
材料 价格
A 5
B 10
C 15
D 20
......
表B:成品的制造需要使用到多种材料
成品 材料1 数量1 材料2 数量2
AA A 2 B 3
BB A 5 C 4
......
要得到的结果表:
成品 成品价格=(材料1价格×数量1+材料2价格×数量2)
AA 5×2+10×3
BB 5×5+15×4
......

这个表的SQL语句怎么写?谢谢!



...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry850730 2007-07-18
  • 打赏
  • 举报
回复
谢谢各位达人!
都对,分大家平分了吧。
paoluo 2007-07-18
  • 打赏
  • 举报
回复
--創建測試環境
Create Table A
(材料 Varchar(10),
价格 Int)
Insert A Select 'A', 5
Union All Select 'B', 10
Union All Select 'C', 15
Union All Select 'D', 20

Create Table B
(成品 Varchar(10),
材料1 Varchar(10),
数量1 Int,
材料2 Varchar(10),
数量2 Int)
Insert B Select 'AA', 'A', 2, 'B', 3
Union All Select 'BB', 'A', 5, 'C', 4
GO
--測試
Select
B.成品,
A.价格 * B.数量1 + C.价格 * B.数量2 As 成品价格
From
B
Inner Join
A
On A.材料 = B.材料1
Inner Join
A C
On C.材料 = B.材料2
GO
--刪除測試環境
Drop Table A, B
--結果
/*
成品 成品价格
AA 40
BB 85
*/
hellowork 2007-07-18
  • 打赏
  • 举报
回复
select a.成品,成品价格 = a.数量1 * b.价格 + a.数量2 * c.价格
from tableB as a
left join tabelA as b on a.材料1 = b.材料
left join tableA as c on a.材料2 = c.材料
gahade 2007-07-18
  • 打赏
  • 举报
回复
drop table 表A,表B
go
create table 表A(材料 varchar(10),价格 int)
insert into 表A
select 'A',5
union all select 'B',10
union all select 'C',15
union all select 'D',20

create table 表B(成品 varchar(10),材料1 varchar(10),数量1 int,材料2 varchar(10),数量2 int)
insert into 表B
select 'AA','A',2,'B',3
union all select 'BB','A',5,'C',4

select 成品,成品价格=A.价格*数量1+C.价格*数量2
from 表B B
left join 表A A on A.材料=B.材料1
left join 表A C on C.材料=B.材料2
/*
成品 成品价格
---------- -----------
AA 40
BB 85

(所影响的行数为 2 行)
*/
paoluo 2007-07-18
  • 打赏
  • 举报
回复
慢多了
paoluo 2007-07-18
  • 打赏
  • 举报
回复
try

Select
B.成品,
A.价格 * B.数量1 + C.价格 * B.数量2 As 成品价格
From
B
Inner Join
A
On A.材料 = B.材料1
Inner Join
A C
On C.材料 = B.材料2
leo_lesley 2007-07-18
  • 打赏
  • 举报
回复

select sum(成品价格) from (
select 成品,成品价格=a.价格*b.数量1 from 表A a inner join 表B b on a.材料 =b.材料1
union all
select 成品,成品价格=a.价格*b.数量2 from 表A a inner join 表B b on a.材料 =b.材料2) t
group by 成品
gahade 2007-07-18
  • 打赏
  • 举报
回复
select 成品,成品价格=A.价格*数量1+C.价格*数量2
from 表B B
left join 表A A on A.材料=B.材料1
left join 表A C on C.材料=B.材料2

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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