首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求1简单语句

2012-12-15 
求一简单语句。表tableA有数据如下:日期商品编码进价2012-01-01AA0152012-02-05AA0342012-03-02AA016我要得

求一简单语句。
表tableA有数据如下:

日  期      商品编码    进价
2012-01-01    AA01       5
2012-02-05    AA03       4
2012-03-02    AA01       6


我要得出的数据是,某时间段范围内,相同品种出现不同进价的商品编码

2012-01-01 AA01  5
2012-03-02 AA01  6
[最优解释]


----------------------------
-- Author  :TravyLee
-- Date    :2012-11-05 16:12:01
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--Jul  9 2008 14:43:34 
--Copyright (c) 1988-2008 Microsoft Corporation
--Developer Edition on Windows NT 6.1 <X86> (Build 7600: )
--
----------------------------
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
go 
create table [test](
[日期] datetime,[商品编码] varchar(10),[进价] int)
insert [test]
select '2012-01-01','AA01',5 union all
select '2012-02-05','AA03',4 union all
select '2012-03-02','AA01',6
--------------开始查询--------------------------

select
*
from
test a
where 
exists(select 1 from test b where a.商品编码=b.商品编码 and a.进价<>b.进价)
--and自己加上时间范围
/*

日期商品编码进价
2012-01-01 00:00:00.000AA015
2012-03-02 00:00:00.000AA016


*/

[其他解释]
SELECT  *
FROM    tableA a
WHERE   EXISTS ( SELECT 1
                 FROM   ( SELECT    商品编码 ,
                                    进价
                          FROM      tableA
                          GROUP BY  商品编码 ,
                                    进价
                          HAVING    COUNT(1) > 1
                        ) b
                 WHERE  a.商品编码 = b.商品编码
                        AND a.进价 = b.进价 )


[其他解释]

select * from 表 where 商品编码 in(
  select 商品编码 from 表 
  where 日期>'开始日期' and 日期<'结束日期' 
  group by 商品编码 
  having count(*)>1
)

[其他解释]
这样可以

[其他解释]
该回复于2012-11-05 22:01:26被管理员删除

热点排行
Bad Request.