救命啊!救命!!。。。。。成本核算。。。。。

chrisDream 2004-07-19 04:28:05
要显示一个表(核算表)。从 配件表 中读取数据,配件表的
主要字段有:组件,单价,配件合计,合计,含税成本,FTYPE
(FTYPE 为组件的类型,包含A,B,。。。等数据)
要求:
1)当“组件”是 “A”或“B”时,单价显示0.000
2)当“组件”是 其他情况 时,单价显示为配件的具体价格
而且把“配件合计”的值置为 0.000
例如:(显示情况)

组件 单价 配件合计 合计 含税成本
A 0.000 100.00 100.00 100.00
B 0.000 50.00 50.00 50.00
.............................................
e 1.0 0.000 1.00 1.00
f 30.00 0.000 30.00 30.00

。。。哪位好心的大哥帮帮我了。。。
...全文
371 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
pokemonFK 2004-07-20
  • 打赏
  • 举报
回复
query 中的afteropen :
IF dataset.FieldByName('ftype').Value = 'a' then
begin
dataset.FieldByName('fpprice').Value:= 0.000;
end;
IF dataset.FieldByName('ftype').Value = 'b' then
begin
dataset.FieldByName('fpprice').Value:= 0.000;
pokemonFK 2004-07-20
  • 打赏
  • 举报
回复
decode 好象不能用在SQLSERVER
chrisDream 2004-07-19
  • 打赏
  • 举报
回复
我用的是SQLSERVER2000。。
jinjazz 2004-07-19
  • 打赏
  • 举报
回复
你数据库表里是什么就select出来什么了,怎么还要分情况阿,要是这样还要数据库干什么
coolvc2002 2004-07-19
  • 打赏
  • 举报
回复
TADquery1.close;
TADquery1.SQL.Text := 'select 组件,' + #13#10 +
' decode(组件, ''a'', 0.0000, ''b'', 0.0000, u.单价) as 单价,' + #13#10 +
' decode(组件, ''a'', 0.0000, ''b'', 0.0000, u.配件合计) as 配件合计,' + #13#10 +
' 合计,' + #13#10 +
' 含税成本' + #13#10 +
' from 配件表 u' + #13#10 +
' where u.组件 = ''a'' or u.组件 = ''b''';
Tadoquery1.Open;
coolvc2002 2004-07-19
  • 打赏
  • 举报
回复
楼上的:

case
when ...;
else ...;
end

效率低,又不是标准的SQL语言,不提倡使用!

用:

select 组件,
decode(组件, 'a', 0.0000, 'b', 0.0000, u.单价) as 单价,
decode(组件, 'a', 0.0000, 'b', 0.0000, u.配件合计) as 配件合计,
合计,
含税成本
from 配件表 u
where u.组件 = 'a' or u.组件 = 'b'
chrisDream 2004-07-19
  • 打赏
  • 举报
回复
我不需要做插入啊,
我也没有核算表,我只是从“配件表”中获得数据,
加工之后,显示出来的,
我用的是ADOQUERY,
那么怎么写他的SQL。。。
taoff 2004-07-19
  • 打赏
  • 举报
回复
我的方法是可以的 你试试呀
coolvc2002 2004-07-19
  • 打赏
  • 举报
回复
coolvc2002(cool_vc) :
我要做的是显示数据,而不是插入数据啊。。。
我是要在DBGRID 中显示的啊

----------------------------------------------------

晕~~~,你可以在显示之前,调用那个插入的sql,
insert into 核算表
select 组件, 0.0000, 配件合计, 合计, 含税成本
from 配件表 u
where u.组件 = 'a' or u.组件 = 'b';

insert into 核算表
select 组件, 单价, 0.0000, 合计, 含税成本
from 配件表 u
where u.组件 <> 'a' and u.组件 <> 'b';


然后显示时,直接从:核算表 中取数据呀!

chrisDream 2004-07-19
  • 打赏
  • 举报
回复
我用的是SQLSERVER2000。。
taoff 2004-07-19
  • 打赏
  • 举报
回复
TADquery1.close;
TADquery1.SQL.clear;
TADquery1.sql.add('select a.组件,'+
' 单价=case a.组件'+
' when ''A'' Then 0.000'+
' when ''B'' Then 0.000'+
' Else a.单价'+
' End,'+
' 配件合计=case a.组件'+
' when ''A'' Then a.配件合计'+
' when ''B'' Then a.配件合计' +
' Else 0.000 '+
' End,a.合计, a.含税成本 from 配件表 a');
Tadoquery1.Open;
coolvc2002 2004-07-19
  • 打赏
  • 举报
回复
上面我给的sql效率是最高的,如果非要在一个语句中写出来,那如果是oracle的话,可以这样写(SQLServer 可以替换掉decode 函数,如果是Access 的话,那我也没招了哦^_^):

select 组件,
decode(组件, 'a', 0.0000, 'b', 0.0000, u.单价) as 单价,
decode(组件, 'a', 0.0000, 'b', 0.0000, u.配件合计) as 配件合计,
合计,
含税成本
from 配件表 u
where u.组件 = 'a' or u.组件 = 'b';
chrisDream 2004-07-19
  • 打赏
  • 举报
回复
coolvc2002(cool_vc) :
我要做的是显示数据,而不是插入数据啊。。。
我是要在DBGRID 中显示的啊
coolvc2002 2004-07-19
  • 打赏
  • 举报
回复
先执行sql:

insert into 核算表
select 组件, 0.0000, 配件合计, 合计, 含税成本
from 配件表 u
where u.组件 = 'a' or u.组件 = 'b';

insert into 核算表
select 组件, 单价, 0.0000, 合计, 含税成本
from 配件表 u
where u.组件 <> 'a' and u.组件 <> 'b';

然后:
select * from 核算表
chrisDream 2004-07-19
  • 打赏
  • 举报
回复
taoff(阿飞) :能不能具体点,我想写在QUERY中啊,
最好是一条SQL语句。。
taoff 2004-07-19
  • 打赏
  • 举报
回复
select a.组件,
单价=case a.组件
when 'A' Then 0.000
when 'B' Then 0.000
Else a.单价
End,
配件合计=case a.组件
when 'A' Then a.配件合计
when 'B' Then a.配件合计
Else 0.000
End,
a.合计,
a.含税成本
from 配件表 a
jian23cn 2004-07-19
  • 打赏
  • 举报
回复
看起来好像很简单,但我还是不懂◎_◎
内容概要:本文围绕“基于共享储能服务的智能楼宇双层优化配置”展开研究,提出了一种结合上层共享储能配置优化与下层楼宇内部能源调度优化的双层协同模型,通过Matlab代码实现,旨在提升智能楼宇在复杂能源环境下的运行效率与经济性。研究充分考虑光伏出力、负荷需求等不确定性因素,引入多维核密度估计、场景生成与削减等技术进行不确定性建模,并融合需求响应、微电网调度等先进理念,实现了对综合能源系统中储能资源的高效配置与动态调控,具有较强的理论深度与工程应用价值。; 适合人群:具备电力系统、可再生能源、优化算法或综合能源系统等相关背景,从事科研、工程应用或课题研究的研发人员、研究生及高年级本科生。; 使用场景及目标:①应用于智能楼宇、园区微电网、虚拟电厂等场景中的储能规划与运行优化;②支撑高水平学术论文(如EI/SCI)的复现、课题申报、毕业设计及实际项目的双层优化建模与求解实践。; 阅读建议:建议结合提供的Matlab代码进行实操演练,重点理解双层优化架构的设计逻辑、求解策略(如Benders分解、主从博弈等)及不确定性处理方法,同时可参考文中关联技术(如场景生成、需求响应)拓展研究思路与应用场景。

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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