如何设置SQL编程语言,显示下面的内容?

gaodali222 2011-07-20 08:17:17
例如下面两个表
A:
ID SERIES ACTUALAMOUNT
1 1.0 2
1 1.5 5
2 1.3 3
2 2 4
.............................


B:
ID QTY
1 1
2 2.5
.............

若取B表中的任何一个ID,那么对应ID的QTY乘以A表对应ID中的SERIES,如果小于等于ACTUALAMOUNT,那么就返回‘正确’,如果大于那么就返回‘错误’,请问怎么设置以上流程语言啊?
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycodeis0000 2011-07-28
  • 打赏
  • 举报
回复

create table t_A
(
id int,
series decimal(4,2),
actualamount decimal(4,2)
)
insert into t_A values(1,1.0,2)
insert into t_A values(1,1.5,5)
insert into t_A values(2,1.3,3)
insert into t_A values(2,2,4)


------------------------------
create table t_B
(
id int,
qty decimal(4,2)
)

insert into t_B values(1,1)
insert into t_B values(2,2.5)

select B.id,state=case when A.series*B.qty>=A.actualamount then '正确' else '失败' end
from t_A A,t_B B where A.id=B.id

AcHerat 2011-07-20
  • 打赏
  • 举报
回复

select a.*,判断字段=case when a.SERIES*b.QTY<=a.ACTUALAMOUNT then 1 else 0 end
from a inner join b on a.id=b.id


程序里用二维数组获取数据集的结果,JAVA里可以用list获取,然后每个ID判断当前的 判断字段 是1还是0,是1为 true 是0为 flase ,这个楼主会吧!
gaodali222 2011-07-20
  • 打赏
  • 举报
回复
是的,类似,就是说当取B表中ID为1时,那么返回正确;若取B表中ID为2时,就返回错误
cd731107 2011-07-20
  • 打赏
  • 举报
回复
--是不是这样

create table A(ID int, SERIES decimal(6,1), ACTUALAMOUNT int)
insert a
select 1 ,1.0 ,2 union all
select 1 ,1.5 ,5 union all
select 2 ,1.3 ,3 union all
select 2 ,2 ,4


create table B(ID int, QTY decimal(6,1))
insert b
select 1 ,1 union all
select 2 ,2.5



if exists (select 1 from a inner join b on a.id=b.id and a.SERIES*b.QTY<=a.ACTUALAMOUNT)
print('正确')
else
print('错误')

/*
正确
*/
cd731107 2011-07-20
  • 打赏
  • 举报
回复

create table A(ID int, SERIES decimal(6,1), ACTUALAMOUNT int)
insert a
select 1 ,1.0 ,2 union all
select 1 ,1.5 ,5 union all
select 2 ,1.3 ,3 union all
select 2 ,2 ,4


create table B(ID int, QTY decimal(6,1))
insert b
select 1 ,1 union all
select 2 ,2.5




select a.*,显示=case when a.SERIES*b.QTY<=a.ACTUALAMOUNT then '正确' else '错误' end
from a inner join b on a.id=b.id

/*
ID SERIES ACTUALAMOUNT 显示
----------- --------------------------------------- ------------ ----
1 1.0 2 正确
1 1.5 5 正确
2 1.3 3 错误
2 2.0 4 错误

(4 行受影响)

*/
gaodali222 2011-07-20
  • 打赏
  • 举报
回复
即类似if..else的流程语言
gaodali222 2011-07-20
  • 打赏
  • 举报
回复
我想使用流程语言判断,如果对应B表中任何一个ID的QTY,乘以对应A表中的series,小于等于actualamount,那么就正确,否则错误。不是查询结果。

cd731107 2011-07-20
  • 打赏
  • 举报
回复
select a.*,case when a.SERIES*b.QTY<=a.ACTUALAMOUNT then '正确' else '错误' end
from a inner join b on a.id=b.id

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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