要显示一个表(核算表)。从 配件表 中读取数据,配件表的
主要字段有:组件,单价,配件合计,合计,含税成本,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哪位好心的大哥帮帮我了
主要字段有:组件,单价,配件合计,合计,含税成本,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哪位好心的大哥帮帮我了
单价=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
最好是一条SQL语句。。
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 核算表
我要做的是显示数据,而不是插入数据啊
我是要在DBGRID 中显示的啊
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';
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;
我要做的是显示数据,而不是插入数据啊
我是要在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';
然后显示时,直接从:核算表 中取数据呀!
我也没有核算表,我只是从“配件表”中获得数据,
加工之后,显示出来的,
我用的是ADOQUERY,
那么怎么写他的SQL
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'
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;
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;