这段程序怎样写,不是很难的,进来看看.谢谢

My_first 2003-02-14 04:44:44
三个表,员工表,工资表,计件工资表,之间通过personid连接的。
select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金,
合计=基本工资+计件工资+奖金 //基本工资+计件工资
From gzsj

执行..

服务器: 消息 207,级别 16,状态 3,行 1
列名 '基本工资' 无效。
服务器: 消息 207,级别 16,状态 1,行 1
列名 '计件工资' 无效。

问:

合计怎样算出来。我上面那样写是错误的.

怎样将上面的语句让执行速度更快.


...全文
18 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-02-14
  • 打赏
  • 举报
回复
delphi不能直接修改dbgrid,应为你的select语句做了复杂联接!!!
你只能通过query动态构造update语句来更新!
My_first 2003-02-14
  • 打赏
  • 举报
回复
蚂蚁的方法是对的,在结果是正确的。 但是在前台通过dbgrid连接。
修改dbgrid的奖金字段还是不能修改呀
流星尔 2003-02-14
  • 打赏
  • 举报
回复
仍然可以修改,蚂蚁的方法是对的。
My_first 2003-02-14
  • 打赏
  • 举报
回复
用上面这段程序没问题,但基本工资运行了两次.

奖金这个字段,我想查询出来可以修改(通过计算出来是不能修改这个字段的)

有没有好的办法能让修改并且
基本工资和计件工资只运算一次.
My_first 2003-02-14
  • 打赏
  • 举报
回复
select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金,
(select jbgz From ytperson where personid=gzsj.personid)+
(select Sum(summoney) From jjgz where personid=gzsj.personid)+奖金
合计


From gzsj

用这段程序没问题,但合计 这里运算两次。因为上面已经运算过一次。
My_first 2003-02-14
  • 打赏
  • 举报
回复
如果按
select 职员姓名,基本工资,计件工资,奖金,合计=基本工资+计件工资+奖金 from
(select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金From gzsj )AA

查询出来的结果,我要更改奖金这一字段的值不就不能修改了吗?
happydreamer 2003-02-14
  • 打赏
  • 举报
回复
改一下 试试

select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
sum(奖金),
sum(1) as 合计

From gzsj
group by 职员姓名
happydreamer 2003-02-14
  • 打赏
  • 举报
回复
select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金,
sum(1) as 合计

From gzsj
group by 职员姓名
happydreamer 2003-02-14
  • 打赏
  • 举报
回复
select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金,
(select jbgz From ytperson where personid=gzsj.personid)+
(select Sum(summoney) From jjgz where personid=gzsj.personid)+奖金
合计


From gzsj
New_bug 2003-02-14
  • 打赏
  • 举报
回复
up!
CrazyFor 2003-02-14
  • 打赏
  • 举报
回复
少写了一个FROM
select 职员姓名,基本工资,计件工资,奖金,合计=基本工资+计件工资+奖金 from
(select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金From gzsj )AA
CrazyFor 2003-02-14
  • 打赏
  • 举报
回复
select 职员姓名,基本工资,计件工资,奖金,合计=基本工资+计件工资+奖金
(select 职员姓名=(select personname From ytperson where personid=gzsj.personid),
基本工资=(select jbgz From ytperson where personid=gzsj.personid),
计件工资=(select Sum(summoney) From jjgz where personid=gzsj.personid),
奖金From gzsj )AA

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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