読んでくれてありがとう、
私は次の表を持っています(表示)
#id_internal type BOOK_ID Writer Title Loan_person_id Loan_Date Return_Date
120 1 1002 Writer1 Book1 2 2012-05-21 2012-06-04
131 0 1002 Writer1 Book1 2 0000-00-00 2012-05-21
134 0 1002 Writer1 Book1 2 0000-00-00 2012-05-21
153 1 1002 Writer1 Book1 2 2012-05-21 2012-06-04
162 0 1002 Writer1 Book1 2 0000-00-00 2012-05-21
165 1 1002 Writer1 Book1 2 2012-05-21 2012-06-04
252 1 1012 Writer2 Book2 2 2012-05-23 2012-06-06
253 0 1012 Writer2 Book2 2 0000-00-00 2012-05-23
383 1 1012 Writer2 Book2 2 2012-05-23 2012-06-06
389 0 1012 Writer2 Book2 2 0000-00-00 2012-05-24
13 1 1008 Writer3 Book3 3 2012-05-20 2012-06-03
基本的に、学校図書館のローンログの私の小さなアプリケーションをモデル化したものを作成しました。
次のようなSQLステートメントを作成する方法を見つけようとしています:id_internalフィールド(図に表示)に基づいて一度に2行を結合します(最初の2行-タプルが存在しないかそこに存在するまでさらに2行など)最後に1つだけです)、もう1つの列を持つ新しいものを作成します。
これは、セットの1行(タイプ= 1)が、本の貸し出し、つまり、本がいつ貸し出され、いつ図書館に返却されることになっていたかを示しているということです。2番目の行(常にLoan_Dateとして時刻0000:00:00、フィールドタイプ= 0)は、本が返却された実際の日付を示します。新しい行には、最初の行に含まれるすべての情報が含まれ、新しい列として、本の実際の返却日が表示されます。Book_IDとLoan_person_id(本を借りた読者用)とTYPEの列があり、値は0(return)と1(loan)です。
SQLの基本的な能力から初期の中間的な能力まで、GROUPBYとGROUPCONCATを正しく使用できません。答えや方向性を楽しみにしています。
どうもありがとう、ディノス
編集:結果は次の形式である必要があります(ビューを使用しましょう)
処理前: #id_internaltypeBOOK_IDライタータイトルLoan_person_idLoan_DateReturn_Date 120 1 1002 Writer1 Book1 2 2012-05-21 2012-06-04 131 0 1002 Writer1 Book1 2 0000-00-00 2012-05-21 処理後: 2つのid_internalのいずれかを保持します(関係ありません): #id_internaltypeBOOK_IDライタータイトルLoan_person_idLoan_DateReturn_Date Real_Return_Date 120 1 1002 Writer1 Book1 2 2012-05-21 2012-06-04 2012-05-21
どうもありがとう