如何查询符合条件的一条记录?

xiaoxiaogirl 2007-06-24 08:36:13
有表A,表B

表A

id name
01 张国英
02 李丽华
03 郭凤英
04 王勇
.....

表B
id nd sj gz bm
01 2006 10 2000 工程部
01 2006 11 1950 工程部
01 2006 12 1950 工程部
01 2007 01 1950 财务部
01 2007 02 1950 财务部
01 2007 03 2100 财务部
01 2007 04 2105 财务部
02 2006 12 3000 工程部
02 2007 01 3006 工程部
02 2007 02 3016 工程部
02 2007 03 3006 财务部
02 2007 04 3126 财务部
02 2007 05 3231 财务部
03 2007 01 2201 工程部
03 2007 02 2226 工程部
03 2007 03 2246 人事部
03 2006 12 2210 企划部
04 2007 02 1900 工程部
04 2007 03 2000 财务部
...
想求出2007年03月份财务部的工资总额及明细.结果如下

id name nd sj gz bm
01 张国英 2007 03 2100 财务部
02 李丽华 2007 03 3006 财务部
04 王勇 2007 03 2000 财务部
.....

合计 7106

如何用SQL语局查询得到以上结果,谢谢!
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidNoWay 2007-06-25
  • 打赏
  • 举报
回复
顶!!
fa_ge 2007-06-25
  • 打赏
  • 举报
回复
再改下:
select a.*,b.nd,b.sj,b.gz,b.bm from t1 a left join t2 b on a.id=b.id
where b.nd='2007'and sj='03'and b.bm='財務部'
order by a.id
compute sum(b.gz)


id name nd sj gz bm
---------- ---------- ---------- ---------- ----------- ----------
01 張國英 2007 03 2100 財務部
02 李麗華 2007 03 3006 財務部
04 王勇 2007 03 2000 財務部

sum
===========
7106


(4 row(s) affected)
mugua604 2007-06-25
  • 打赏
  • 举报
回复
select A.name,B.id,B.nd,B.sj,B.gz,B.bm
from A
left join B on A.id=B.id
where nd='2007' and sj='03' and bm='财务部'
union all
select '合计',null,null,null,sum(gz),null from B
where nd='2007' and sj='03' and bm='财务部'
fa_ge 2007-06-25
  • 打赏
  • 举报
回复

create table t1
(id varchar(10), name varchar(10))
insert into t1
select '01', '張國英' union all
select '02', '李麗華' union all
select '03', '郭鳳英' union all
select '04', '王勇'


create table t2
(id varchar(10), nd varchar(10), sj varchar(10), gz int , bm varchar(10))
insert into t2
select '01', '2006', '10', 2000, '工程部' union all
select '01', '2006', '11', 1950, '工程部' union all
select '01', '2006', '12', 1950, '工程部' union all
select '01', '2007', '01', 1950, '財務部' union all
select '01', '2007', '02', 1950, '財務部' union all
select '01', '2007', '03', 2100, '財務部' union all
select '01', '2007', '04', 2105, '財務部' union all
select '02', '2006', '12', 3000, '工程部' union all
select '02', '2007', '01', 3006, '工程部' union all
select '02', '2007', '02', 3016, '工程部' union all
select '02', '2007', '03', 3006, '財務部' union all
select '02', '2007', '04', 3126, '財務部' union all
select '02', '2007', '05', 3231, '財務部' union all
select '03', '2007', '01', 2201, '工程部' union all
select '03', '2007', '02', 2226, '工程部' union all
select '03', '2007', '03', 2246, '人事部' union all
select '03', '2006', '12', 2210, '企划部' union all
select '04', '2007', '02', 1900, '工程部' union all
select '04', '2007', '03', 2000, '財務部'



select a.*,b.nd,b.sj,b.gz,b.bm from t1 a left join t2 b on a.id=b.id
where b.nd='2007'and sj='03'and b.bm='財務部'


id name nd sj gz bm
---------- ---------- ---------- ---------- ----------- ----------
01 張國英 2007 03 2100 財務部
02 李麗華 2007 03 3006 財務部
04 王勇 2007 03 2000 財務部

(3 row(s) affected)

bill024 2007-06-24
  • 打赏
  • 举报
回复
改下:
select A.name,B.id,B.nd,B.sj,B.gz,B.bm from A inner join B
on A.id=B.id
where nd='2007' and sj='03' and bm='财务部'
union all
select '合计',null,null,null,sum(gz),null from B
where nd='2007' and sj='03' and bm='财务部'
bill024 2007-06-24
  • 打赏
  • 举报
回复
select A.name,B.id,B.nd,B.sj,B.gz,B.bm from A inner join B
on A.id=B.id
where nd='2007' and sj='03' and bm='财务部'
union all
select '合计',null,null,null,sum(gz),null from A inner join B
on A.id=B.id
where nd='2007' and sj='03' and bm='财务部'

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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