求教一个sql查询?

wndtalker 2009-09-22 06:42:31
数据表结构如下:
brxz fyxh zfbl fyxe cxbl
12 26 20 0 0
2011 26 100 0 0
2000 26 20 0 0
12 27 20 0 0
2011 27 20 0 0

想查询表中,brxz = 12 和 brxz = 2011 的zfbl不相同的项,哪位大哥告诉我该怎么写这条sql语句???
...全文
209 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2009-09-23
  • 打赏
  • 举报
回复
一个比较笨的语句,全部列出来
select * from TABLE as a where brxz=12 and(select top 1 brxz from TABLE where brxz=2011 and fyxh=a.fyxh and zfbl=a.zfbl and fyxe=a.fyxe and cxbl=a.cxbl)is null
union all
select * from TABLE as a where brxz=2011 and(select top 1 brxz from TABLE where brxz=12 and fyxh=a.fyxh and zfbl=a.zfbl and fyxe=a.fyxe and cxbl=a.cxbl)is null
donglian0663 2009-09-22
  • 打赏
  • 举报
回复
select min(fyxh) from tb where brxz = 12 or brxz = 2011 gourd by fyxh
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
写错了,数据项有1万多条啊
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sql77 的回复:]
引用 10 楼 wndtalker 的回复:
brxz  fyxh  zfbl  fyxe  cxbl
12    26    20      0      0
2011  26    100    0      0
这是想要的结果,我上面没说清楚,我是想要查询满足条件的fyxh;

按我第一次回答的再子查询一次应该可以了
[/Quote]
你写的我看不懂,我是在一张很大的表中查询,数据项有1多条啊
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
BRXZ FYXH ZFBL FYXE CXBL
12 1 20 0 0
1000 1 100.0 0 100.0
2002 1 0 0 0
2003 1 0 0 0
2011 1 0 0 0
2012 1 0 0 0
2012 26 100.0 0 0
2011 26 100.0 0 0
2003 26 100.0 0 0
2002 26 100.0 0 0
12 26 100.0 0 0
如上的数据,我想得表中brxz = 12 和brxz = 2011的zfbl值不同的fyxh,正确的结果是1;
不好意思,上面我没说清楚!!
SQL77 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wndtalker 的回复:]
brxz  fyxh  zfbl  fyxe  cxbl
12    26    20      0      0
2011  26    100    0      0
这是想要的结果,我上面没说清楚,我是想要查询满足条件的fyxh;
[/Quote]
按我第一次回答的再子查询一次应该可以了
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 feixianxxx 的回复:]
引用 10 楼 wndtalker 的回复:
brxz  fyxh  zfbl  fyxe  cxbl
12    26    20      0      0
2011  26    100    0      0
这是想要的结果,我上面没说清楚,我是想要查询满足条件的fyxh;

看不懂 结果怎么来的
[/Quote]
我重新整理下,可能我写的不清楚
feixianxxx 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wndtalker 的回复:]
brxz  fyxh  zfbl  fyxe  cxbl
12    26    20      0      0
2011  26    100    0      0
这是想要的结果,我上面没说清楚,我是想要查询满足条件的fyxh;
[/Quote]
看不懂 结果怎么来的
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
brxz fyxh zfbl fyxe cxbl
12 26 20 0 0
2011 26 100 0 0
这是想要的结果,我上面没说清楚,我是想要查询满足条件的fyxh;
guguda2008 2009-09-22
  • 打赏
  • 举报
回复
想要的结果帖出来
SQL77 2009-09-22
  • 打赏
  • 举报
回复
CREATE TABLE tb(brxz int,fyxh int, zfbl int, fyxe  int ,cxbl int)
go
insert tb SELECT
12 , 26, 20 , 0 , 0 UNION ALL SELECT
2011, 26, 100 , 0 , 0 UNION ALL SELECT
2000, 26, 20 , 0 , 0 UNION ALL SELECT
12 , 27, 20 , 0 , 0 UNION ALL SELECT
2011, 27, 20 , 0 , 0

--DROP TABLE TB

SELECT * FROM TB WHERE
zfbl IN
(SELECT zfbl FROM
(SELECT DISTINCT BRXZ,zfbl FROM TB WHERE brxz = 12 OR brxz = 2011 )AS T
GROUP BY zfbl HAVING COUNT(zfbl)<=1)
brxz fyxh zfbl fyxe cxbl
----------- ----------- ----------- ----------- -----------
2011 26 100 0 0

(所影响的行数为 1 行)


?????
yys80116 2009-09-22
  • 打赏
  • 举报
回复
就现在的技术而言,这到题要用视图或者自连接来做,
luoyoumou 2009-09-22
  • 打赏
  • 举报
回复
SELECT DISTINCT * FROM Tb 
WHERE brxz=12 AND zfb1 NOT IN (SELECT DISTINCT zfb1 FROM Tb WHERE brzx=2011)
UNION
SELECT DISTINCT * FROM Tb
WHERE brxz=2011 AND zfb1 NOT IN (SELECT DISTINCT zfb1 FROM Tb WHERE brzx=12)
wndtalker 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lihan6415151528 的回复:]
SQL codeSELECTDISTINCT(*)FROM TBWHERE brxz=12OR brxz=2011
[/Quote]
不行,我的意思是要查brxz = 12 和 2011,但他们的zfbl值不相同!
feixianxxx 2009-09-22
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------------
--------------------希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(brxz int,fyxh int, zfbl int, fyxe int ,cxbl int)
go
insert tb SELECT
12 , 26, 20 , 0 , 0 UNION ALL SELECT
2011, 26, 100 , 0 , 0 UNION ALL SELECT
2000, 26, 20 , 0 , 0 UNION ALL SELECT
12 , 27, 20 , 0 , 0 UNION ALL SELECT
2011, 27, 20 , 0 , 0
go
declare @n1 int ,@n2 int
set @n1=12
set @N2 =2011
select *
from tb k
where (brxz=@N1 and not exists(select * from tb where brxz=@n2 and zfbl=k.zfbl))
or (brxz=@N2 and not exists(select * from tb where brxz=@n1 and zfbl=k.zfbl))
/*
brxz fyxh zfbl fyxe cxbl
----------- ----------- ----------- ----------- -----------
2011 26 100 0 0

*/
go
SQL77 2009-09-22
  • 打赏
  • 举报
回复
SELECT DISTINCT  BRXZ,zfbl  FROM TB WHERE brxz = 12 OR  brxz = 2011 
luoyoumou 2009-09-22
  • 打赏
  • 举报
回复
SELECT DISTINCT * FROM Tb 
WHERE brxz=12 AND brxz<>2011
UNION
SELECT DISTINCT * FROM Tb
WHERE brxz=2011 AND brxz<>12
lihan6415151528 2009-09-22
  • 打赏
  • 举报
回复
SELECT DISTINCT(*) FROM TB
WHERE brxz = 12 OR brxz = 2011

27,580

社区成员

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

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