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

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

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

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    部分高級查詢 sql 拼寫筆記 (mysql)

    Posted on 2008-08-09 22:00 G_G 閱讀(3475) 評論(9)  編輯  收藏 所屬分類: Database
    參考:http://www.programbbs.com/bbs/view25-12320-1.htm
    但上面的 一些sql語句 ,有查詢時間問題,在此我已于改正了并希望和大家分享。

    ---------自我感覺 第四題 很不錯!-------------


    ----------------------------------------------------------------------
    第一題(只要重復的都要?輸出)
    ----------------------------------------------------------------------
    create?table?c?(id?int?);
    insert?into?c?values?(1),(2),(3),(4),(3),(5),(6),(1);
    結果:
    ????
    select?id?from?c?group?by?id?having?count(id)>1?;
    附加(查詢重復最多的倒排)
    select?bid,count(bid)?as?cu?from?tb?group?by?bid?having?count(bid)>1??order?by?cu??desc





    ----------------------------------------------------------------------
    第二題(報表查詢橫向輸出)
    查詢后的結果:
    Create table d(id int,name varchar(50));
    insert into d values(1,'gly');
    insert into d values(2,'ptgly');
    insert into d values(3,'ybgly');
    insert into d values(4,'ptgly');
    insert into d values(5,'ybgly');
    +---+-----+------+
    |gly|ptgly|ybgly | ????
    |---+-----+------+-
    |1? |2??? |2???? |
    +---+-----+------+
    -----------------------------------------------------------------------
    select?
    ????
    sum(case?when?name='gly'?then?1?else?0?end?)?as?gly??,
    ????
    sum(case?when?name='ptgly'?then?1?else?0?end?)?as?ptgly??,
    ????
    sum(case?when?name='ybgly'?then?1?else?0?end?)?as?ybgly??
    from?d?;



    第三題
    可以根據上面 2,4 可以得出 。
    下面我們詳細說下 4題。


    -----------------------------------------------------------------------
    第四題(復雜組合查詢!)
    create table table_a (No int, No2 int,num double,itime date);
    insert into table_a values
    ???? (1234,567890,33.5,'2004-12-21'),
    ???? (1234,598701,44.8,'2004-11-21'),
    ???? (1234,598701,45.2,'2004-10-01'),
    ???? (1234,567890,66.5,'2004-9-21'),
    ???? (3456,789065,22.5,'2004-10-01'),
    ???? (3456,789065,77.5,'2004-10-27'),
    ???? (3456,678901,48.5,'2004-12-21');
    按月統計銷售表中貨物的銷售量數
    查詢結果如下:
    ? No, No2 ,?? 九月,  十月,十一月,十二月
    1234,567890, 66.5 ,  0 ,  0? ,? 33.5
    1234,598701,? 0?? , 45.2, 44.8, 0
    3456,789065, 0? ,  100,  0? ,  0
    3456,678901, 0 ,??? 0,??? 0? ,? 48.5
    -----------------------------------------------------------------------
    //當然也可以 使用mysql 時間函數 在軟件編輯時 你可以輸入 String[] 并根據數據動態拼寫 sql( case部分!! )
    //這個 例子很好 哦!報表可以一句sql 得出!

    select?NO,NO2,
    ????
    sum(case??when?itime?like?'2004-%9%'?then?num?else?0?end)?as?9M,
    ????
    sum(case??when?itime?like?'2004-10%'?then?num?else?0?end)?as?10M,
    ????
    sum(case??when?itime?like?'2004-11%'?then?num?else?0?end)?as?11M,
    ????
    sum(case??when?itime?like?'2004-12%'?then?num?else?0?end)?as?12M
    from?table_a?group?by?no,no2?order?by?no,no2?;


    --------------------------------------------------------------
    第五題
    代碼,名稱
    1???? a
    2???? b
    11??? c
    (代碼11表示為1的下級)
    我要通過一條句子,得出如下結果:

    代碼,名稱,有無下級
    1???? a???? 有
    2???? b???? 無
    11??? c???? 無


    Create table TabTest(t_Code varchar(10),t_Name varchar(10));
    insert into TabTest values('1','a');
    insert into TabTest values('2','b');
    insert into TabTest values('11','c');
    --------------------------------------------------------------
    select?tt1.t_Code,tt1.t_name,(?
    ?????
    case?
    ?????????????
    when?exists?(select?1?from?tabtest?tt2?
    ???????????????????????????????????????
    where?tt2.t_code?like?CONCAT(tt1.t_code,'%')?and?
    ??????????????????????????????????????? tt2.t_code?
    <>?tt1.t_code?)??then?'you'?
    ?????????????
    else?'wu'
    ??????
    end?)?as?you_wu
    from?tabtest??tt1?;









    評論

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-11 09:08 by 游客
    誤人子弟!

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-11 09:50 by Skynet
    @游客
    詳細說明下嗎?當報表查詢時你 用大量硬代碼,去統計數據?
    這種sql還是會的好

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-11 14:55 by 游客
    這種sql也叫高級查詢語句???并且都是死sql代碼,不是誤人子弟是什么?

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-12 09:08 by Skynet
    @游客
    看來這位仁兄 意見很深啊 !
    能詳細點嗎 你上面還只是單純的評價,有什么好的方法,或高見說出來與大家分享!
    我這就拋磚引玉了 !
    順便我這也好好學習學習

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-12 09:12 by Skynet
    死sql代碼 ?這點 我并不贊同 !
    代碼中動態的 生成拼接 sql ,還是第一次聽說 死sql代碼?難想
    @游客 兄會 面向對象數據庫動態查詢? 這就期待中

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-14 16:47 by sniperking
    恩確實在統計查詢中SQL的技巧很重要呀!省很多事呀

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-08-26 11:55 by 冰河快狼
    不要亂罵人,我見過很多動不動罵人的人能力其實并不怎么樣,我覺得樓主的總結還是可以的

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2008-12-22 15:21 by 又一個游客
    不會寫行轉列就多問啊,寫的這么垃圾的代碼,暈。

    # re: 部分高級查詢 sql 拼寫筆記 (mysql)  回復  更多評論   

    2012-05-07 16:10 by 老衲用飄柔
    說實話,寫的的的確是差了那么一點點
    主站蜘蛛池模板: 成人毛片免费观看视频大全| 亚洲国产成人精品91久久久| 亚洲女子高潮不断爆白浆| 亚洲成A人片在线观看无码3D| 波霸在线精品视频免费观看| 337p欧洲亚洲大胆艺术| 无码国模国产在线观看免费| 9久久免费国产精品特黄| 亚洲中文字幕久久精品无码2021| 又色又污又黄无遮挡的免费视| 黄网站免费在线观看| 亚洲高清一区二区三区| 亚洲中文字幕第一页在线| AV无码免费永久在线观看| 国产A∨免费精品视频| 亚洲avav天堂av在线网爱情| 亚洲午夜未满十八勿入网站2| 成人特黄a级毛片免费视频| 亚洲免费人成在线视频观看| 日韩欧美亚洲中文乱码| 麻豆亚洲AV永久无码精品久久| yy6080亚洲一级理论| 国产卡一卡二卡三免费入口| 美女被免费网站91色| 亚洲av永久中文无码精品综合| 亚洲av无码潮喷在线观看 | 成人影片麻豆国产影片免费观看 | 亚洲欧洲成人精品香蕉网| 噜噜嘿在线视频免费观看| 黄页免费在线观看| 高清免费久久午夜精品| 亚洲日韩一区精品射精| 亚洲欧洲日产国产综合网| 亚洲男人av香蕉爽爽爽爽| 午夜老司机免费视频| 91高清免费国产自产拍2021| 一本岛v免费不卡一二三区| 亚洲国产精品嫩草影院| www.亚洲成在线| 亚洲女人影院想要爱| 亚洲91av视频|