【发布时间】:2012-12-25 02:54:42
【问题描述】:
非常感谢您的阅读,
我有下表(查看)
#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 字段(如图所示)一次合并两行(前两行 - 再多两行等,直到没有元组存在或最后只有一个)并创建一个多列的新列。
这就是所有关于集合的一行(类型 = 1)描述图书借出,即图书何时被借出以及何时应该归还图书馆。第二行(始终以 Loan_Date 为时间 0000:00:00 并且字段 type = 0 )描述了图书归还的真实日期。新行将包含第一行中包含的所有信息,新列将包含图书的真实归还日期。 Book_ID 和 Loan_person_id 列(用于借书的读者)和 TYPE 列,值为 0(返回)和 1(贷款)。
从我在 SQL 中的基本能力到早期中级能力,我无法正确使用 GROUP BY 和 GROUP CONCAT。
期待答案或方向。
再次感谢,
恐龙
编辑:结果应该是形式(让我们使用视图)
非常感谢
【问题讨论】:
-
我建议发布有问题的 SQL。它比所有这些文字更能帮助查明你做错了什么。
-
对不起,我不被允许发布图片,就像我想的那样。我改用文字。非常感谢您的阅读。
-
不是桌子;您尝试过的 SQL。
-
对不起,我尝试的 sql 非常初级,对讨论没有任何价值。再次感谢。
-
请贴出你想要的结果,这样容易理解