虚拟表(kk) 1.
select cd1.cInvcode, sum(cd1.iquantity) as SumNum
from inventory cd0,currentstock cd1 where cd1.cInvcode = cd0.cInvcode
group by cd1.cInvcode
通过以上语句 得到 虚拟表(若命名别名为:kk) 中kk.cInvCode, kk.SumNum 这两个字段的内容表2. 表 Inventory(别名为In) 中 的字段有 cInvCode, iTopSum(上限数量), iLowSum(下限数量),cInvName 要求:
首先 当 虚拟表kk 和 表 Inventory 中的 (In.cInvCode=kk.cInvCode)字段相等时对应的记录的.然后 在对应记录上 比较 In.iTopSum < kk.SumNum < In.iLowSum (kk.SumNum 值在In.iTopSum 和 In.iLowSum 范围之外)
如果 kk.SumNum > In.iTopSum 求出(kk.SumNum - In.iTopSum)差值.
如果 kk.SumNum < In.iLowSum 求出(In.iLowSum - kk.SumNum)差值.
最后得到显示表的结果是: 表的字段有: | cInvCode | cInvName | SumNum | iTopSum | iLowSum | 能不能通过 sql语句实现呢?
select cd1.cInvcode, sum(cd1.iquantity) as SumNum
from inventory cd0,currentstock cd1 where cd1.cInvcode = cd0.cInvcode
group by cd1.cInvcode
通过以上语句 得到 虚拟表(若命名别名为:kk) 中kk.cInvCode, kk.SumNum 这两个字段的内容表2. 表 Inventory(别名为In) 中 的字段有 cInvCode, iTopSum(上限数量), iLowSum(下限数量),cInvName 要求:
首先 当 虚拟表kk 和 表 Inventory 中的 (In.cInvCode=kk.cInvCode)字段相等时对应的记录的.然后 在对应记录上 比较 In.iTopSum < kk.SumNum < In.iLowSum (kk.SumNum 值在In.iTopSum 和 In.iLowSum 范围之外)
如果 kk.SumNum > In.iTopSum 求出(kk.SumNum - In.iTopSum)差值.
如果 kk.SumNum < In.iLowSum 求出(In.iLowSum - kk.SumNum)差值.
最后得到显示表的结果是: 表的字段有: | cInvCode | cInvName | SumNum | iTopSum | iLowSum | 能不能通过 sql语句实现呢?
解决方案 »
- 如何控制PNG图像的透明度?
- 急求:使用idhttp登陆HTTS网站
- 最近用对完成端口做的服务器程序做压力测试,发现服务器的内存慢慢减少:(
- FastReport3在delphi 控件頁面上有一個頁面fastscrip這些控件有什麼用?
- sql Server中能否存储jpg图像文件?
- 高手提示的问题,我还是不懂,搜也搜不到
- 谁能找到delphi6.0的韩数大全的书最好是.chm格式的
- WEB SERVICE 的IAPPSERVER调用
- 如何将数组清空?
- 用tidtcpclient接收服务端回应时丢包
- 如何在dbgridEH录入数据时自动产生序号
- 如何得到TStream里面的内容?就是把TStream转换成string?
--测试数据
create table temp( cname varchar2(100),SumNum int,iTopSum int, iLowSum int )
insert into temp
select '12',50,100,30 from dual union all
select '1',150,100,30 from dual union all
select '2',20,100,30 from dual;
--执行查询
select cname,
case when SumNum > iTopSum then SumNum - iTopSum
when SumNum < iLowSum then iLowSum - SumNum
else SumNum
end SumNum
from temp;
--查询结果
12 50
1 50
2 10
select
i.cInvCode,t.SumNum,i.iTopSum,i.iLowSum,
case when t.SumNum > I.iTopSum then t.SumNum - I.iTopSum
when t.SumNum < I.iLowSum then I.iLowSum- t.SumNum end as 高功率
from Inventory i,
(
select cd1.cInvcode, sum(cd1.iquantity) as SumNum
from inventory cd0,currentstock cd1 where cd1.cInvcode =
cd0.cInvcode
group by cd1.cInvcode
) as t
where i.cInvCode=t.cInvCode
) as ZH where ZH.SumNum is not null
and ZH.SumNum not between ZH.iLowSum and ZH.iTopSum 我写的实现以上功能 的sql 语句. 麻烦大家帮改进一下,提高执行效率.