<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 89,  comments - 98,  trackbacks - 0
    1,現有表bill和表payment結構如下,兩表通過pay_id關聯:
    bill表――bill_id是帳單標識,charge為帳單金額,pay_id為付款編號,PK:bill_id
    bill_id INTEGER
    charge INTEGER
    pay_id INTEGER

    payment表――pay_id為付款編號,charge為付款金額,PK:pay_id
    pay_id INTEGER
    charge INTEGER

    要求更新payment使charge=bill表中同一pay_id的charge之和。

    2、表A定義如下:
    屬性 類型
    Year Integer
    Quarter Varchar(30)
    Amount float

    Year Quarter Amount
    2000 1 1.1
    2000 2 1.2
    2000 3 1.3
    2000 4 1.4
    2001 1 2.1
    2001 2 2.2
    2001 3 2.3
    2001 4 2.4
    其中每行表表示一個季度的數據。

    如果處理表A中的數據,得到如下的結果。
    Year Quarter1 Quarter2 Quarter3 Quarter4
    2000 1.1 1.2 1.3 1.4
    2001 2.1 2.2 2.3 2.4
    請用SQL寫一段代碼實現。

    3、有如下信息:
    起始地 目的地 距離(公里)
    A B 1000
    A C 1100
    A D 900
    A E 400
    B D 300
    D F 600
    E A 400
    F G 1000
    C B 600
    請用SQL語句或一段代碼寫出從A出發,可達到的目的地(包括間接方式)。

    4.表A定義如下:
    屬性 類型 備注
    Id Integer PK
    Name Varchar(30)
    State char(3)
    表A中現有1000萬條記錄,如果客戶端要通過分頁的方式從表A中取數據,其中每頁20條
    記錄,有幾種方法?描述每種方法如何處理,有什么優缺點?用SQL寫出實現代碼。
    scmail81 發表于 2006-2-12 14:17:25

    不錯嗎!
    CSDN上的經典問題阿!
    scmail81 發表于 2006-2-12 14:27:45

    2.
    create table A
    (
    year int,
    Quarter varchar(30),
    amount float
    )

    insert A select 2000,'1',1.1
    insert A select 2000,'2',1.2
    insert A select 2000,'3',1.3
    insert A select 2000,'4',1.4
    insert A select 2001,'1',2.1
    insert A select 2001,'2',2.2
    insert A select 2001,'3',2.3
    insert A select 2001,'4',2.4

    declare @T_SQL varchar(8000)
    set @T_SQL=''
    select @T_SQL=@T_SQL + ' sum(case when Quarter=''' + T.Quarter + ''' then amount else 0 end) as Quarter' + T.Quarter +','
    from (select Quarter from A group by Quarter) T
    set @T_SQL='select year ,' + left(@T_SQL,len(@T_SQL)-1) + ' from A group by year'
    exec (@T_SQL)
    scmail81 發表于 2006-2-12 14:46:32

    3.
    create table A
    (
    起始地 varchar(5),
    目的地 varchar(5),
    距離 int
    )

    insert A select 'A','B',1000
    insert A select 'A','C',1100
    insert A select 'A','D',900
    insert A select 'A','E',400
    insert A select 'B','D',300
    insert A select 'D','F',600
    insert A select 'E','A',400
    insert A select 'F','G',1000
    insert A select 'C','B',600

    declare @Q varchar(5)
    declare @T table ( 起始地 varchar(5),目的地 varchar(5),路 varchar(8000),lev int)
    declare @lev int
    set @Q='A'
    set @lev=1
    insert @T select 起始地,目的地,起始地+'->'+目的地 as 路,@lev as lev from A where 起始地=@Q
    while @@rowcount>0
    begin
    set @lev=@lev+1
    insert @T select A.起始地,A.目的地,T.路+'->'+A.目的地 ,@lev as lev from (select * from @T where lev=@lev-1) T,(select * from A where A.目的地 not in (select 起始地 from @T)) A where A.起始地=T.目的地
    end
    select 路 from @T
    scmail81 發表于 2006-2-12 14:56:03

    1.
    update payment set charge=(select sum(charge) from bill where pay_id=T.pay_id)
    from payment p
    samfeng_2003 發表于 2006-2-12 15:48:20

    我暈,這是哪個公司的面視題?怎么有那么多公司都用這題來考人啊
    shiqing8899 發表于 2006-2-12 17:05:36

    不是吧?有這么多公司用啊!
    gerrylc 發表于 2006-2-13 8:32:02

    是啊,我也碰過第二題
    select year,sum(case Quarter when '1' then Amount else 0 end) as Quarter1,
    Quarter2=sum(case Quarter when '2' then Amount else 0 end),
    Quarter3=sum(case Quarter when '3' then Amount else 0 end),
    Quarter4=sum(case Quarter when '4' then Amount else 0 end),
    Amount=sum(Amount)
    from 表 group by year order by year
    mm2love2zz 發表于 2006-2-13 14:04:48

    看過了~~
    mm2love2zz 發表于 2006-2-13 14:17:33

    select year,sum(case Quarter when '1' then Amount end) as Quarter1,
    sum(case Quarter when '2' then Amount end) as Quarter2,
    sum(case Quarter when '3' then Amount end) as Quarter3,
    sum(case Quarter when '4' then Amount end) as Quarter4
    from A order by year group by year
    chenyuandxm 發表于 2006-2-13 16:59:15

    1、
    select pay_id,charge=sum(charge) into #temp from bill group by pay_id
    update payment set payment.charge=#temp.charge from payment,#temp where payment.pay_id=#temp.pay_id
    posted on 2006-09-19 11:17 水煮三國 閱讀(4318) 評論(5)  編輯  收藏 所屬分類: Database

    FeedBack:
    # re: SQL 經典面試題集
    2009-02-17 17:19 | 暢暢暢
    3.
    select distinct b1.目的地 from B b1,(select 目的地 from B where 起始地='A') as b2 where b1.起始地=b2.目的地 or b1.起始地='A';  回復  更多評論
      
    # re: SQL 經典面試題集
    2009-02-17 17:24 | 暢暢暢
    select distinct b1.目的地 as A能到達的目的地 from B b1,(select 目的地 from B where 起始地='A') as b2 where b1.起始地=b2.目的地 or b1.起始地='A' order by b1.目的地;  回復  更多評論
      
    # re: SQL 經典面試題集
    2010-09-02 16:38 | David Liu
    不錯,謝謝了  回復  更多評論
      
    # re: SQL 經典面試題集
    2010-09-02 16:40 | David Liu
    1. 創建一個函數
    create FUNCTION GetBillCharge(@pay_id int)
    RETURNS int
    AS
    begin
    declare @returnValue int
    SELECT @returnValue = charge from dbo.bill where bill.pay_id = @pay_id
    return @returnValue
    end

    更新
    update payment
    set change= change + dbo.GetBillCharge(payment.pay_id)  回復  更多評論
      
    # re: SQL 經典面試題集
    2010-09-02 16:41 | David Liu
    2. 答案如下

    select [YEAR],
    sum(case when [Quarter] = 1 then [Amount] else 0 end ) 'Quarter1' ,
    sum(case when [Quarter] = 2 then [Amount] else 0 end ) 'Quarter1',
    sum(case when [Quarter] = 3 then [Amount] else 0 end ) 'Quarter1' ,
    sum(case when [Quarter] = 4 then [Amount] else 0 end ) 'Quarter1'
    from A group by [YEAR]
      回復  更多評論
      
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類(85)

    隨筆檔案(89)

    文章分類(14)

    文章檔案(42)

    收藏夾(37)

    java

    oracle

    Sybase

    搜索

    •  

    積分與排名

    • 積分 - 210971
    • 排名 - 266

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产青草视频免费观看97| 最近中文字幕大全中文字幕免费| 国产精品无码免费播放| 亚洲综合婷婷久久| 日韩电影免费在线观看中文字幕| 亚洲日韩欧洲无码av夜夜摸| 99在线免费观看| 亚洲综合国产精品| 8x8x华人永久免费视频| 亚洲一区二区影院| 国拍在线精品视频免费观看| 国产成人精品亚洲日本在线| 日韩成人免费aa在线看| 国产精品亚洲一区二区三区| 亚洲一区精品伊人久久伊人 | 黄+色+性+人免费| 亚洲一级毛片免费观看| 成人在线免费观看| 综合一区自拍亚洲综合图区| 亚洲一级黄色视频| 久久久久久国产精品免费免费男同 | 亚美影视免费在线观看| 亚洲大尺度无码专区尤物| 每天更新的免费av片在线观看| 美女视频黄免费亚洲| 又粗又大又长又爽免费视频| 成人网站免费大全日韩国产| 中文字幕亚洲综合久久2| 成人性生交视频免费观看| 一个人看的www免费在线视频| 亚洲αv久久久噜噜噜噜噜| 97在线观看永久免费视频| 亚洲伊人久久大香线蕉AV| 亚洲男人av香蕉爽爽爽爽| 久久九九AV免费精品| 亚洲一区二区三区高清在线观看 | 亚洲精品无码不卡在线播HE| 91免费播放人人爽人人快乐| 最新亚洲人成无码网www电影| 亚洲产国偷V产偷V自拍色戒 | 亚洲毛片av日韩av无码|