查询出所有2列相同的值

szlixiaolong 2016-06-15 12:58:46
voucher_no item_no 字段N......
1 2 内容N。。。
1 2 内容N。。。

如何实现查询2列相同的所有值呢


我使用以下语句:
select voucher_no ,item_no from t_im_flow
group by voucher_no ,item_no

可以显示所有相同的值,可是要查询2列voucher_no ,item_no的所有值,如何写?

...全文
334 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
szlixiaolong 2016-06-17
  • 打赏
  • 举报
回复
引用 17 楼 kingtiy 的回复:
[quote=引用 3 楼 szlixiaolong 的回复:] [quote=引用 1 楼 kingtiy 的回复:]

select voucher_no ,item_no,count(0) from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

CREATE TABLE [dbo].[t_im_flow]( [flow_id] [numeric](14, 0) IDENTITY(1,1) NOT NULL, [voucher_no] [char](14) NULL, [oper_date] [datetime] NULL, [item_no] [char](20) NOT NULL, [real_qty] [numeric](16, 4) NULL, [price] [numeric](16, 4) NULL, [cost_price] [numeric](16, 4) NULL, [sheet_amt] [numeric](16, 4) NULL, [branch_no] [char](6) NULL, [d_branch_no] [char](6) NULL, [trans_no] [char](2) NULL, [db_no] [char](1) NOT NULL, [supcust_no] [char](8) NULL, [sale_way] [char](1) NULL, [oper_id] [char](4) NOT NULL, [pre_qnty] [numeric](16, 4) NULL, [valid_date] [datetime] NULL, [acc_date] [datetime] NULL, [memo] [varchar](255) NULL, [other1] [varchar](20) NULL, [other2] [varchar](20) NULL, [num1] [numeric](16, 4) NULL, [num2] [numeric](16, 4) NULL, [com_flag] [char](1) NULL, [sup_ly_rate] [numeric](16, 4) NULL, [sup_ly_paid] [char](1) NULL, [flow_date] [datetime] NULL, CONSTRAINT [PK_T_IM_FLOW] PRIMARY KEY CLUSTERED ( [flow_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY][/quote]

select a.* from t_im_flow a join (
select voucher_no ,item_no,count(0) PV from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

--这样也查不出你要的数据吗?
[/quote] 有语法错误
qq_23937721 2016-06-17
  • 打赏
  • 举报
回复
自己随便写了下试试看
道玄希言 2016-06-16
  • 打赏
  • 举报
回复

WITH t1(voucher_no ,item_no,x) AS 
(
    SELECT '1', '1', 'A' UNION ALL 
    SELECT '1', '1', 'B' UNION ALL 
    SELECT '1', '2', 'C'

),
t2 AS
(
    SELECT voucher_no ,item_no FROM t1 
    GROUP BY voucher_no ,item_no 
    HAVING COUNT(1) = 2
)
SELECT * FROM t2 
INNER JOIN t1
ON t1.voucher_no = t2.voucher_no 
AND t1.item_no = t2.item_no

        
wqDBA 2016-06-16
  • 打赏
  • 举报
回复
group by + having是可以解决的
kingtiy 2016-06-16
  • 打赏
  • 举报
回复
引用 3 楼 szlixiaolong 的回复:
[quote=引用 1 楼 kingtiy 的回复:]

select voucher_no ,item_no,count(0) from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

CREATE TABLE [dbo].[t_im_flow]( [flow_id] [numeric](14, 0) IDENTITY(1,1) NOT NULL, [voucher_no] [char](14) NULL, [oper_date] [datetime] NULL, [item_no] [char](20) NOT NULL, [real_qty] [numeric](16, 4) NULL, [price] [numeric](16, 4) NULL, [cost_price] [numeric](16, 4) NULL, [sheet_amt] [numeric](16, 4) NULL, [branch_no] [char](6) NULL, [d_branch_no] [char](6) NULL, [trans_no] [char](2) NULL, [db_no] [char](1) NOT NULL, [supcust_no] [char](8) NULL, [sale_way] [char](1) NULL, [oper_id] [char](4) NOT NULL, [pre_qnty] [numeric](16, 4) NULL, [valid_date] [datetime] NULL, [acc_date] [datetime] NULL, [memo] [varchar](255) NULL, [other1] [varchar](20) NULL, [other2] [varchar](20) NULL, [num1] [numeric](16, 4) NULL, [num2] [numeric](16, 4) NULL, [com_flag] [char](1) NULL, [sup_ly_rate] [numeric](16, 4) NULL, [sup_ly_paid] [char](1) NULL, [flow_date] [datetime] NULL, CONSTRAINT [PK_T_IM_FLOW] PRIMARY KEY CLUSTERED ( [flow_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY][/quote]

select a.* from t_im_flow a join (
select voucher_no ,item_no,count(0) PV from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

--这样也查不出你要的数据吗?
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 13 楼 human_2000 的回复:
再查询啊 select b.* from ( select voucher_no ,item_no from t_im_flow group by voucher_no ,item_no ) a inner join t_im_flow b on a.voucher_no=b.voucher_no and a.item_no=b.item_no
查询不出所有重复的voucher_no ,item_no相关内容。
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 14 楼 ap0405140 的回复:
[quote=引用 9 楼 szlixiaolong 的回复:]
[quote=引用 6 楼 ap0405140 的回复:]
请问错误信息是什么?


你好,版主,查询出来的数据,都不是voucher_no item_no的数据。[/quote]
不好意思,没看明白,请简化问题,
提供表结构(删除无关的字段), 测试数据和希望结果.[/quote]




你看图。




唐诗三百首 2016-06-15
  • 打赏
  • 举报
回复
引用 9 楼 szlixiaolong 的回复:
[quote=引用 6 楼 ap0405140 的回复:] 请问错误信息是什么?
你好,版主,查询出来的数据,都不是voucher_no item_no的数据。[/quote] 不好意思,没看明白,请简化问题, 提供表结构(删除无关的字段), 测试数据和希望结果.
human_2000 2016-06-15
  • 打赏
  • 举报
回复
再查询啊 select b.* from ( select voucher_no ,item_no from t_im_flow group by voucher_no ,item_no ) a inner join t_im_flow b on a.voucher_no=b.voucher_no and a.item_no=b.item_no
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 10 楼 KanzakiOrange 的回复:
sql server 2005测试语法上也没任何问题啊
我的表结构在上面有, [t_im_flow]
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 6 楼 ap0405140 的回复:
请问错误信息是什么?
select a.* from t_im_flow a inner join (select voucher_no,item_no from t_im_flow group by voucher_no ,item_no) b on a.voucher_no=b.voucher_no and a.item_no=b.item_no and a.voucher_no like '%PI%' and a.oper_date>='2016-05-01 00:00:00' and a.oper_date<='2016-06-01 23:59:59' and a.branch_no='000001' order by a.voucher_no,a.item_no
Ginnnnnnnn 2016-06-15
  • 打赏
  • 举报
回复
sql server 2005测试语法上也没任何问题啊
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 6 楼 ap0405140 的回复:
请问错误信息是什么?
你好,版主,查询出来的数据,都不是voucher_no item_no的数据。
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 7 楼 KanzakiOrange 的回复:
是不是你要的效果

;with CTE AS (
select 1 as voucher_no ,2 as item_no ,'CCFFSFS' as Col union all
select 1 as voucher_no ,2 as item_no ,'Caafeafav' as Col union all
select 2 as voucher_no ,1 as item_no ,'vavaav' as Col union all
select 3 as voucher_no ,5 as item_no ,'43434242' as Col 
)
select * 
	from CTE a
	where exists(select 1 from CTE where voucher_no = a.voucher_no and item_no = a.item_no having count(*) > 1)
voucher_no item_no Col ----------- ----------- --------- 1 2 CCFFSFS 1 2 Caafeafav
我的数据库是SQL 2005
Ginnnnnnnn 2016-06-15
  • 打赏
  • 举报
回复
是不是你要的效果

;with CTE AS (
select 1 as voucher_no ,2 as item_no ,'CCFFSFS' as Col union all
select 1 as voucher_no ,2 as item_no ,'Caafeafav' as Col union all
select 2 as voucher_no ,1 as item_no ,'vavaav' as Col union all
select 3 as voucher_no ,5 as item_no ,'43434242' as Col 
)
select * 
	from CTE a
	where exists(select 1 from CTE where voucher_no = a.voucher_no and item_no = a.item_no having count(*) > 1)
voucher_no item_no Col ----------- ----------- --------- 1 2 CCFFSFS 1 2 Caafeafav
唐诗三百首 2016-06-15
  • 打赏
  • 举报
回复
请问错误信息是什么?
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:

select a.*
  from t_im_flow a
  inner join (select voucher_no,item_no 
                    from t_im_flow  
                    group by voucher_no ,item_no) b on a.voucher_no=b.voucher_no and a.item_no=b.item_no
  order by a.voucher_no,a.item_no
你好,版主,以上语句不行。
唐诗三百首 2016-06-15
  • 打赏
  • 举报
回复

select a.*
  from t_im_flow a
  inner join (select voucher_no,item_no 
                    from t_im_flow  
                    group by voucher_no ,item_no) b on a.voucher_no=b.voucher_no and a.item_no=b.item_no
  order by a.voucher_no,a.item_no
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 1 楼 kingtiy 的回复:

select voucher_no ,item_no,count(0) from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

CREATE TABLE [dbo].[t_im_flow]( [flow_id] [numeric](14, 0) IDENTITY(1,1) NOT NULL, [voucher_no] [char](14) NULL, [oper_date] [datetime] NULL, [item_no] [char](20) NOT NULL, [real_qty] [numeric](16, 4) NULL, [price] [numeric](16, 4) NULL, [cost_price] [numeric](16, 4) NULL, [sheet_amt] [numeric](16, 4) NULL, [branch_no] [char](6) NULL, [d_branch_no] [char](6) NULL, [trans_no] [char](2) NULL, [db_no] [char](1) NOT NULL, [supcust_no] [char](8) NULL, [sale_way] [char](1) NULL, [oper_id] [char](4) NOT NULL, [pre_qnty] [numeric](16, 4) NULL, [valid_date] [datetime] NULL, [acc_date] [datetime] NULL, [memo] [varchar](255) NULL, [other1] [varchar](20) NULL, [other2] [varchar](20) NULL, [num1] [numeric](16, 4) NULL, [num2] [numeric](16, 4) NULL, [com_flag] [char](1) NULL, [sup_ly_rate] [numeric](16, 4) NULL, [sup_ly_paid] [char](1) NULL, [flow_date] [datetime] NULL, CONSTRAINT [PK_T_IM_FLOW] PRIMARY KEY CLUSTERED ( [flow_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
szlixiaolong 2016-06-15
  • 打赏
  • 举报
回复
引用 1 楼 kingtiy 的回复:

select voucher_no ,item_no,count(0) from t_im_flow  
group by voucher_no ,item_no
having count(0)>1

我需要查询所有的,select * from
加载更多回复(1)

34,590

社区成员

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

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