1:
select A.名称,A.数量,A.数量*B.零售价 as totalP
from A,B
where A.名称 = B.名称
2: C.名称 ,C.占地面积,C.占地面积 * D.价格 as totalP
from c,D
where C.占地面积 between D.最少面积 and D.最大面积
select A.名称,A.数量,A.数量*B.零售价 as totalP
from A,B
where A.名称 = B.名称
2: C.名称 ,C.占地面积,C.占地面积 * D.价格 as totalP
from c,D
where C.占地面积 between D.最少面积 and D.最大面积
解决方案 »
- SQL语句的用法
- 求一sql 高手帮忙 在线等
- 请教一个sql结果集查询的问题,谢谢
- 急呀!求救...存储过程问题
- 这个语句怎么写啊,救命啊。
- 急,太奇怪!我在存储过程中取数据插入另外一个表!
- 再问
- 简单的存储过程。
- 求助大虾!想写一个通用的查询,对所有字段类型都适用,不知道怎样写会更好一些?select * from tablename where fieldname1='value' and(or)
- 我的计算机改了计算机名,可是SQL企业管理器里显示的服务器名都是旧的计算机名,不能启动了,我要保留新的计算机名,怎么才能把SQL SERVER启动起来?
- 视图
- SQL Server 7.0的用户请求帮助
from c,D
where C.占地面积 between D.最少面积 and D.最大面积
from A left join B on A.名称 = B.名称
from C left join D
on C.占地面积>=D.最少面积 and C.占地面积<= D.最大面积
select A.名称,A.数量,A.数量*B.零售价 as 总价格
from A left outer join B on A.名称 = B.名称
2, 赞同:tj_dns(愉快的登山者) 好象第一个也一样。:)
select A.名称,A.数量,A.数量*ISNULL(B.零售价,0) as 总价格
from A left outer join B on A.名称 = B.名称
2, 没考虑小于100情况
select C.名称, C.占地面积, (CASE WHEN C.占地面积<=100 THEN D.价格 ELSE C.占地面积 * D.价格 END) as 面积价格
from C left join D
on C.占地面积>=D.最少面积 and C.占地面积<= D.最大面积
(@aa int)
returns numeric
as
begin
declare @price numeric(8,2)
declare @tmp numeric(5,2)
declare @tmpa1 int
set @price=0
set @tmp=0
set @tmpa1=0
if exists (select price from t1 where @aa>a1 and @aa<=a2)
begin
select @tmp=price,@tmpa1=a1 from t1 where @aa>a1 and @aa<=a2
set @price=@price+@tmp*(@aa-@tmpa1)
if @tmpa1=0
set @aa=0
else
set @aa=@aa-@tmpa1
endif @aa>0
set @price=@price+dbo.getprice(@aa)
return @price
end
go
select c.面积,dbo.getprice(c.面积) as 价钱 from c
else 占地面积*d.价格
end
from c,d
where 占地面积 between d.最少面积 and d.最大面积
可以执行
drop table DCREATE TABLE C (
名称 varchar(50) NULL,
占地面积 varchar(50) NOT NULL)
GO
CREATE TABLE D (
最少面积 int NULL,
最大面积 int NULL,
价格 numeric(24,8)
)
GOinsert C values('非建筑面积',500)
insert C values('建筑面积',200)insert D values(0,100,600)
insert D values(100,300,2)
insert D values(300,600,1.5)
insert D values(600,1000,1.2)select C.名称, C.占地面积, (CASE WHEN C.占地面积<=100 THEN D.价格 ELSE C.占地面积 * D.价格 END) as 面积价格
from C left join D
on C.占地面积>=D.最少面积 and C.占地面积<= D.最大面积结果是:
名称 占地面积 面积价格
非建筑面积 500 750.000000
建筑面积 200 400.000000