compute

a547504006 2011-12-16 04:43:20
我做的是工资管理系统。
其中的总工资=岗位名称(岗位工资设置)+基础工资等级(基础工资设置)+工龄长短(工龄工资设置)

该怎么写代码或者怎么操作,才能使之自动搜索,然后算出总工资。

老师叫我用select中的compute来用,可我不知道怎么弄!!


我的工资信息表中包括这么几项:
员工号(主键) char(6)
员工姓名 char(15)
岗位名称 char(20)
基础工资等级 int
工龄长短 char(10)
总工资 float 允许空


基础工资设置表
基础工资等级 (主键) int
基础工资 float


岗位工资设置表
岗位名称(主键) char(20)
岗位工资 float

工龄工资设置表
工龄工资等级 int
工龄长短 (主键) char(10)
工龄工资 float


以上是我的4张表格。 如果要让他自动计算总工资。那么,需不需要各张表间进行连接。然后用compute进行计算。

麻烦大虾详解下 谢谢
...全文
116 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
a2583361610 2011-12-20
  • 打赏
  • 举报
回复
怎么读取computed filed中的数据?
xiaobn_cn 2011-12-19
  • 打赏
  • 举报
回复
5楼的回答过你了,ASA可以用的,这两条SQL都是标准的T-SQL不限制数据库的,关系型数据库应当都支持。
a547504006 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaobn_cn 的回复:]
引用 6 楼 a547504006 的回复:
引用 1 楼 xiaobn_cn 的回复:
汗,居然没有分分。。。。。

第1种方案:

SQL code

--在select中就算出总工资
SELECT A.员工号,
A.员工姓名
B.基础工资 + C.岗位工资 + D.工龄工资
FROM 工资信息表 A,
基础工资设置表 B,
岗位工资设置表 C,
工龄工资设置表 ……
[/Quote]

我用的是ASA数据库。你写的这两条是不是限制在只能有SQL SERVER数据库中使用?
xiaobn_cn 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a547504006 的回复:]
引用 1 楼 xiaobn_cn 的回复:
汗,居然没有分分。。。。。

第1种方案:

SQL code

--在select中就算出总工资
SELECT A.员工号,
A.员工姓名
B.基础工资 + C.岗位工资 + D.工龄工资
FROM 工资信息表 A,
基础工资设置表 B,
岗位工资设置表 C,
工龄工资设置表 D
WHERE A.基础工资等级 = ……
……
[/Quote]

我提供的是个SQL,你使用这个SQL做为数据源制作一个datawindow对象,然后在要使用的地方放个数据窗口控件,指定刚才制作的datawindow对象为数据窗口控件的dataobject,然后对数据窗口控件执行读取数据的操作。我想这么描述已经很清楚了。
a547504006 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaobn_cn 的回复:]
汗,居然没有分分。。。。。

第1种方案:

SQL code

--在select中就算出总工资
SELECT A.员工号,
A.员工姓名
B.基础工资 + C.岗位工资 + D.工龄工资
FROM 工资信息表 A,
基础工资设置表 B,
岗位工资设置表 C,
工龄工资设置表 D
WHERE A.基础工资等级 = ……
[/Quote]

我已经按你这样做了。 然后该怎么办?直接弄出来个DATAWINDOW 然后把东西拉进去吗?
a547504006 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xiaobn_cn 的回复:]
怀疑楼主你的sqlca没有连上数据库。你的数据窗口里完全没有数据么,执行完retrieve数据窗口里有数据才对。
[/Quote]


有的
xiaobn_cn 2011-12-19
  • 打赏
  • 举报
回复
怀疑楼主你的sqlca没有连上数据库。你的数据窗口里完全没有数据么,执行完retrieve数据窗口里有数据才对。
a547504006 2011-12-19
  • 打赏
  • 举报
回复
你Q多少,我加下。
a547504006 2011-12-19
  • 打赏
  • 举报
回复
这张是:未修改(放在datawindow里的)
这张是:未修改


这张是:修改后的效果(放在datawindow里的)
这张是:修改后的效果

a547504006 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaobn_cn 的回复:]
主外键不需要设,数据库能不能用中文偶也不知道,你可以自己测试下。不过不建议使用中文,哪怕数据库支持。
[/Quote]

读取的代码是不是:dw_1.settransobject(sqlca)
dw_1.retrieve()

这张是:未修改(放在datawindow里的)http://hi.csdn.net/attachment/201112/19/4920918_1324274262G0xY.jpg
这张是:未修改
http://hi.csdn.net/attachment/201112/19/4920918_1324274264sHuU.jpg
这张是:修改后的效果(放在datawindow里的)http://hi.csdn.net/attachment/201112/19/4920918_1324274264W48b.jpg

这张是:修改后的效果http://hi.csdn.net/attachment/201112/19/4920918_1324274263VYkp.jpg

xiaobn_cn 2011-12-19
  • 打赏
  • 举报
回复
主外键不需要设,数据库能不能用中文偶也不知道,你可以自己测试下。不过不建议使用中文,哪怕数据库支持。
a547504006 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiaobn_cn 的回复:]
5楼的回答过你了,ASA可以用的,这两条SQL都是标准的T-SQL不限制数据库的,关系型数据库应当都支持。
[/Quote]

我按你的要求写了。主外键要设吗?还有数据库中的表能用中文吗?
代码如下:
SELECT "wage_information"."id",
"wage_information"."name",
"gangwei_wage_set"."gangwei_wage"+"basic_wage_set"."basic_wage"+"work_age_set"."work_age_wage"
FROM "wage_information",
"basic_wage_set",
"gangwei_wage_set",
"work_age_set"
WHERE ( "wage_information"."basic_wage_grade" = "basic_wage_set"."basic_wage_grade" ) and
( "wage_information"."gangwei_name" = "gangwei_wage_set"."gangwei_name" ) and
( "wage_information"."work_age" = "work_age_set"."work_age" )
PB菜鸟 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a547504006 的回复:]

1我的是ASA数据库。能用你这些语句吗?

2可以用的话,应该在哪里写!1
[/Quote]
1 可以的
2 你会建立datawindow吗?也可以通过datawindow 来建立关系选择相应的字段,或者直接写sql语句来实现。

通过Design->Convert To Syntax菜单可以进入sql语句编写界面,直接输入sql语句返回保存


a547504006 2011-12-17
  • 打赏
  • 举报
回复
1我的是ASA数据库。能用你这些语句吗?

2可以用的话,应该在哪里写!1
xiaobn_cn 2011-12-16
  • 打赏
  • 举报
回复
第3种方案比较麻烦,是不关联表只取出工资信息表的内容,然后在数据窗口中通过下拉数据窗口的显示值来计算总工资。这个我就不详细写了,估计你也用不上。
xiaobn_cn 2011-12-16
  • 打赏
  • 举报
回复
第2种方案:
-- SQL中不计算工资,只取出各种分类工资,然后在数据窗口中通过1个computer控件来计算总工资。
SELECT A.员工号,
A.员工姓名,
B.基础工资,
C.岗位工资,
D.工龄工资
FROM 工资信息表 A,
基础工资设置表 B,
岗位工资设置表 C,
工龄工资设置表 D
WHERE A.基础工资等级 = B.基础工资等级
AND A.岗位名称 = C.岗位名称
AND A.工龄长短 = D.工龄长短;
xiaobn_cn 2011-12-16
  • 打赏
  • 举报
回复
汗,居然没有分分。。。。。

第1种方案:
--在select中就算出总工资
SELECT A.员工号,
A.员工姓名
B.基础工资 + C.岗位工资 + D.工龄工资
FROM 工资信息表 A,
基础工资设置表 B,
岗位工资设置表 C,
工龄工资设置表 D
WHERE A.基础工资等级 = B.基础工资等级
AND A.岗位名称 = C.岗位名称
AND A.工龄长短 = D.工龄长短;


401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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