日期:2014-05-18  浏览次数:20360 次

关于一个联合查询的问题!
我有一个SQL表,记录的是员工的基本信息,另一个是工资表,工资在未发之前我们假设这个工资表是空的。还有一个表是工资项目表。
那么我要保存当月发工资的记录,我用一个DBGrid(或者CxGrid)来显示出员工姓名,工资项目,实发的金额这三个信息。那么DBGrid显示的模式应该如下:


员工姓名           工资项目             实发金额
张三                   基本工资             1000.00
张三                   岗位津贴             500.00
张三                   差旅费                 48.50
李四                   基本工资             800.00
李四                   岗位津贴             400.00
李四                   差旅费                 0.0
……                 ……                           ……

很显然,这个DBGrid关联的表应该是工资表的那个数据源。但是由于工资在未发之前(也就是我没有输入实发金额前),我们认为这个工资表是空的。那么DBgrid自然显示不出来任何记录。而且,员工姓名和工资项目分别来自员工表和工资项目表。

我想要的结果就是:程序在运行时,DBGrid(或CxGrid)就要显示所有员工姓名以及工资项目,金额那一栏空着待填。因为我想等金额输入完后,我只需执行数据集的ApplyUpdate(0);过程就可以将这个工资发放记录保存到工资表中去。

希望高手指教一下!


------解决方案--------------------
放心,马上有人会回复的,哈哈~~~~

------解决方案--------------------
--先這麼查詢得到你要的表
Select
A.员工姓名,
B.工资项目,
0 As 实发金额
From
员工 A
Cross Join
工资项目表 B


用戶輸入數據後,你再將數據插入到工资表中。
------解决方案--------------------
delphi没用过.
如果不想通过查询得到表,再在表里修改的话,恐怕SQL做不到.
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html