2014-09-25 102 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 

這就是查詢結果就像我想要的。感謝您的回覆。

案例已結案。