一道SQL笔试题

表结构:

TABLE t1 ( 
    
[ID] [int] IDENTITY (11NOT NULL , 
    
[s_date] [datetime] NOT NULL DEFAULT (getdate()), 
    
[Customer_id] [varchar] (50DEFAULT ('0'), 
    
[product_id] [varchar] (50DEFAULT ('0'), 
    
[Amt] [int] NOT NULL DEFAULT (0), 

问题:

1.写SQL取出表t1的第15~19行的记录。

2.写SQL删除表t1中的重复记录。

3.写SQL对Amt字段按月汇总,并按Customer_id分组。

4.写SQL实现下表,其中销量为Amt的总和。

年份 1月销量 2月销量 3月销量 4月销量 5月销量 6月销量 7月销量 8月销量 9月销量 10月销量 11月销量 12月销量
……                        
2005                        
2006                        
2007                        
……                        

 

对于第4题不知道有没有更好的方法?

我的答案如下:

1)题:

 

SELECT TOP 5 * FROM [t1] WHERE [ID] NOT IN(SELECT TOP 14 [ID] FROM [t1]

2)题:

 

DELETE FROM t1 WHERE 
exists(select [ID] from t1 as t2 where t1.customer_id=t2.customer_id and t1.product_id=t2.product_id and t1.amt=t2.amt and t1.id<t2.id) 

3)题:

 

SELECT MONTH(s_date) as C_Month, [Customer_id]SUM(Amt) as Sum_Amt FROM [t1] 
group by MONTH(s_date), [Customer_id] 

4)题:

SQL

 

posted @ 2009-07-29 09:24  Arcai  阅读(1305)  评论(7编辑  收藏  举报