非常感谢阅读,
我有下表(查看)
#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 字段(如图所示)一次合并两行(前两行 - 更多两行等,直到不存在元组或存在最后只有一个)并创建一个多列的新列。
这就是所有关于集合中的一行(type = 1)描述图书借出的时间,即图书被借出的时间以及应该归还图书馆的时间。第二行(始终具有 Loan_Date 时间 0000:00:00 和字段 type = 0 )描述了还书的真实日期。新行将包含第一行中包含的所有信息,新列将包含图书的真实归还日期。Book_ID 和 Loan_person_id 列(用于借书的读者)和 TYPE 列,值为 0(返回)和 1(贷款)。
从我在 SQL 中的基本能力到早期中级能力,我无法正确使用 GROUP BY 和 GROUP CONCAT。期待答案或方向。
非常感谢,迪诺斯
编辑:结果应该是形式(让我们使用视图)
处理前: #id_internal type BOOK_ID Writer Title Loan_person_id Loan_Date Return_Date 120 1 1002 作家1 Book1 2 2012-05-21 2012-06-04 131 0 1002 Writer1 Book1 2 0000-00-00 2012-05-21 处理后: 保留两个 id_internal 之一(没关系): #id_internal type BOOK_ID Writer Title Loan_person_id Loan_Date Return_Date Real_Return_Date 120 1 1002 作家1 Book1 2 2012-05-21 2012-06-04 2012-05-21
非常感谢