今天面试笔试了一道SQL面试题,狠简单

 
有表Test
CREATE TABLE test 
    ( 
      date datetime , 
      type1 VARCHAR(2) , 
      type2 VARCHAR(2) , 
      account1 INT , 
      account2 INT 
    )
----------------------------------- 
date           type1 type2 account1 account2 
 
2010-02-21     A1    B1    12    14 
2010-02-21     A1    B2    12    19 
2010-02-21     A1    B1    14    19 
2010-02-21     A2    B3    15    12 
2010-02-21     A2    B1    17    14 
2010-02-21     A3    B2    18    14 
2010-02-21     A2    B1    12    11 
 
 
 
一条语句查询出 
-------------------------------------- 
date           type  account1 account2 
 
2010-02-21     A1        38    0 
2010-02-21     A2        44    0 
2010-02-21     A3        18    0 
2010-02-21     B1        0    58 
2010-02-21     B2        0    33 
2010-02-21     B3        0    12 
 
 
 
----------------------------------------- 
  
/*
 
    
INSERT INTO test 
SELECT '2010-02-21','A1','B1',12,14 
UNION 
SELECT '2010-02-21','A1','B2',12,19 
UNION 
SELECT '2010-02-21','A1','B1',14,19 
UNION 
SELECT '2010-02-21','A2','B3',15,12 
UNION 
SELECT '2010-02-21','A2','B1',17,14 
UNION 
SELECT '2010-02-21','A3','B2',18,14 
UNION 
SELECT '2010-02-21','A2','B1',12,11  
 
   
SELECT  *  FROM    test     
*/ 
  
 
 
SELECT date,[type1] AS 'type',SUM(account1) AS 'account1',0 AS 'account2' FROM test 
GROUP  BY date,[type1] 
union 
SELECT date,[type2],0   ,SUM(account2)  FROM test 
GROUP  BY date,[type2] 
 
 
  
posted @ 2010-12-31 13:25  qanholas  阅读(423)  评论(0编辑  收藏  举报