2014-09-25 64 views
0

我正在处理一些关于我公司的报告,其中一些报告有两种列式格式以提高纸张的效率。我的问题是,如果我有这样的拆分表MySql

+----+-------+-----+ 
| id | name | sex | 
+----+-------+-----+ 
| 1 | A | M | 
| 2 | B | F | 
| 3 | C | M | 
| 4 | D | M | 
| 5 | E | F | 
+----+-------+-----+ 

表我如何格式化是这样

+----+-------+-----+----+-------+-----+ 
| id | name | sex | id | name | sex | 
+----+-------+-----+----+-------+-----+ 
| 1 | A | M | 4 | D | M | 
| 2 | B | F | 5 | E | F | 
| 3 | C | M | |  |  | 
+----+-------+-----+----+-------+-----+ 

是否有可能做到这一点?

+0

报告是如何生成的?是否使用了程序或报告工具? – 2014-09-25 01:33:33

+0

我正在使用delphi的快速报告。 – AdrianUsagi 2014-09-25 01:37:59

+0

看看用MySQL模拟数据透视表 – Namphibian 2014-09-25 02:11:03

回答

1

我认为这可能会解决您的问题。

letz举一个例子,在你的一页中你可以有20条记录。所以现在你可以有40个记录。

在这里,您可以在第一个td内创建一个包含2列的表格,您有一个3列的表格,第二个表格中的表格也相同。在第一列和第一表中填入前20条记录,然后将20到40填入下一列表。

希望你从HTML格式的代码中得到这个想法。

<table> 
<tr> 
    <td> 
    <table> 
     <tr> 
     <td>ID</td> 
     <td>Name</td> 
     <td>Sex</td> 
     </tr> 
    </table> 
    </td> 
    <td> 
    <table> 
     <tr> 
     <td>ID</td> 
     <td>Name</td> 
     <td>Sex</td> 
     </tr> 
    </table> 
    </td> 
</tr> 
</table> 
+0

感谢您的回应,但我正在处理delphi(桌面基础应用程序),而不是基于Web的应用程序。 – AdrianUsagi 2014-09-25 02:21:39

+0

我明白了,但我已经给出了一个表结构的概念,如果情况是HTML,您可以使用它来获得结果输出 – 2014-09-25 02:23:34

+0

。这是一个不错的解决方案:) – 2014-09-26 01:20:47

0

几个小时后,可以做到这一点,没有数据透视表或临时表。查询应该是这样的

set @b=0; 
set @c=0; 

select DISTINCT * from (
select @b:[email protected]+1 as number, name, sex from people limit 3 offset 0) as t LEFT JOIN (
select @c:[email protected]+1 as number, name, sex from people limit 3 offset 3) as t1 ON t.number=t1.number 

这就是查询结果就像我想要的。感谢您的回复。

案例已结案。