Sql語言:如何從多條記錄中選取一條?

來源:互聯網
上載者:User

     最近上CSDN,發現問這一個問題的挺多,我原來寫程式的時候,也曾經遇到過這種問題,不過已經解決。現在我來敘述一下該如何解決這一問題。

    問題舉例如下:

    兩張表,一張名為Corp_Info,擁有欄位id,name,type,……,另外一張為product,擁有欄位名id,product_name,date,ammount,…… 。在這兩張表中,表Corp_Info的id為主鍵,product表表示某個公司在某個時間買了多少個叫什莫的產品。現在的問題是,列出每一個公司最近購買的產品資訊的一條。

    解決問題:

    首先,我們需要列出每一個公司的購買資訊,這個很簡單,Sql語句如下

        Select Corp_info.name, product.* from Corp_info, product where Corp_info.id=product.id;

    其次,要從這些記錄中選出每一個公司購買日期最大的一條記錄,使用彙總函式

        Select A.name, C.product_name.C.date,C.ammount  from Corp_info A, 

        (

               Select product.id, max(date) as Last_date from Corp_info, product where Corp_info.id = product.id

             group by product.id        --選出同一公司購買資訊中的最大日期

        )B,

     product C

    where A.id=B.id and B.id=C.id and C.id=A.id and C.Last_date = B.date

這樣的話,我們就可以完成從多條記錄中選出一條的任務了。

以此類推,如果存在同一公司在同一日期內的購買資訊,那末,我們就還需要對ammount或者product_name甚至兩者都要進行彙總操作,這取決於後表的性質。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.