2012-07-16 85 views
0

我在我的表灌溉以下行:合併一個SQLite查詢的線路

CodeIrrigation |CodeSecteur|Date_Irrigation | Cubage | 
---------------|-----------|----------------|--------| 
    1   | 2  | 12/04/2012  | 1300 | 
---------------|-----------|----------------|--------| 
    2   | 3  | 12/04/2012  | 1500 | 
---------------|-----------|----------------|--------| 

我想作爲的結果是什麼:

CodeIrrigation |CodeSecteur1|CodeSecteur2|Date_Irrigation | 
    ---------------|------------|------------|----------------| 
     1   | 2  | 3  | 12/04/2012  | 

有一個查詢,可以返回類似那?

+0

你使用SQLite,MySQL或SQL服務器?還是全部三個?你可以只標註你實際使用的RDBMS嗎? – 2012-07-16 15:19:21

+1

關於這麼做,有數百個問題。看看[這裏](http://stackoverflow.com/questions/2255640/mysql-reshape-data-from-long-tall-to-wide)。您可以在網站上搜索「pivot」/「unpivot」,它應該爲您提供所需的信息。 – 2012-07-16 15:19:24

+0

你如何關聯行?它只是按日期(這個名字可能應該像'irrigatedOn',列不應該以類型爲前綴)?你大概知道你需要多少樞軸柱嗎? – 2012-07-16 15:30:08

回答

1

試試這個:

SELECT 
    MIN(CodeIrrigation) AS 'CodeIrrigation', 
    MIN(CodeSecteur) AS 'CodeSecteur1', 
    MAX(CodeSecteur) AS 'CodeSecteur2' 
FROM table 
GROUP BY Date_Irrigation 
+0

不錯,它正在工作tahnks,但如果我想添加另一列,那麼該怎麼辦?例如CodeIrrigation1和CodeIrrigation2? – cascadox 2012-07-16 15:30:29

+0

@cascadox,如果這些值在您的示例中是有限的,那麼您必須添加它,例如「MIN(CodeIrrigation)作爲CodeIrrigation1,MAX(CodeIrrigation)AS CodeIrrigation1'。請記住'GROUP BY'子句。如果這些值不可數並且您需要動態執行此操作,那麼您必須使用動態SQL來執行此操作(如果使用的是SQL Server)。 – 2012-07-16 15:34:08

+0

問題解決了謝謝! – cascadox 2012-07-16 15:36:00