回答
你可以使用CASE語句,它會解決你的問題當組件數量修復時
SELECT package,
(CASE WHEN COMPONENT = 'WATER' THEN MARKS END) AS WATER,
(CASE WHEN COMPONENT = 'AIR' THEN MARKS END) AS AIR,
(CASE WHEN COMPONENT = 'FIRE' THEN MARKS END) AS FIRE
FROM TABLE_NAME;
該組件將是動態的,但我嘗試使用兩個組件,我只獲取輸出包,組件和標記沒有顯示。 –
@RiteshSharma我不敢相信,你能分享輸出和查詢。 –
我解決了錯誤,但輸出是這樣的。 –
您只需要PIVOT表格。它給一點點其他演示文稿,但嘗試這一個 -
SELECT
t.Package,
MAX(IF(t.Component = 'WATER', t.Marks, NULL)) AS Water,
MAX(IF(t.Component = 'AIR', t.Marks, NULL)) AS Air,
MAX(IF(t.Component = 'FIRE', t.Marks, NULL)) AS Fire
FROM
table t
GROUP BY
t.Package;
該組件將是動態的,它不固定到3組件。考慮到我已經包含三個組件的例子。 –
<?php include'connect-db.php';我們可以通過下面的例子來說明如何使用這個函數:$ query =「SELECT t.package_no,MAX(IF(t.work_component ='$ work_component',t.daily_progress,NULL) $ result = mysql_query($ query)或die(mysql_error()); while($ row = mysql_fetch_array($ result)){ echo $ row ['package_no']; echo $ row ['work_component']; echo $ row ['daily_progress']; } ?> –
我已經運行您的代碼,它只顯示包裹細節,組件和標記<-> daily_progress。它給錯誤。未定義索引 –
假設該組件會出現在該行取決於它出現在表中,你可以計算出該行的編號爲串聯僞鍵,然後應用順序一組由
/*
DROP TABLE IF EXISTS T;
CREATE TABLE T (ID INT AUTO_INCREMENT PRIMARY KEY,PACKAGE VARCHAR(10),COMPONENT VARCHAR(10), MARKS INT);
INSERT INTO T (PACKAGE,COMPONENT,MARKS) VALUES
('02ABC','WATER',20),('02ABC','WATER',15),('02ABC','AIR',16),('02ABC','AIR',18),('02ABC','AIR',6),
('02ABC','WATER',5),
('02MNO','WATER',10),('02MNO','AIR',5),('02MNO','FIRE',15);
*/
SELECT S.PACKAGE,
#S.OCCURANCE,
MAX(CASE WHEN S.COMPONENT = 'WATER' THEN S.MARKS ELSE 0 END) WATER,
MAX(CASE WHEN S.COMPONENT = 'AIR' THEN S.MARKS ELSE 0 END) AIR,
MAX(CASE WHEN S.COMPONENT = 'FIRE' THEN S.MARKS ELSE 0 END) FIRE
FROM
(
SELECT T.ID,T.PACKAGE,T.COMPONENT,T.MARKS,
IF(CONCAT(T.PACKAGE,T.COMPONENT) <> @P ,@OCCURANCE:=1,@OCCURANCE:[email protected]+1) OCCURANCE,
@P:=CONCAT(T.PACKAGE,T.COMPONENT) P
FROM (SELECT @OCCURANCE:=0,@P:='') O,T
ORDER BY T.PACKAGE,T.COMPONENT,T.ID
) S
GROUP BY S.PACKAGE,S.OCCURANCE
- 1. 將多個行組合到一箇中,從多到多
- 2. 合併多個陣列值到一個數組值
- 3. 將單元格的多個陣列的行組合到一個新陣列中
- 4. 如何將多個LineString行組合到單個行集合中
- 5. 在Python中使用[key:value]組合將多個列合併到一個列表中
- 6. 將多個數據集列組合到一個數據集中
- 7. Excel - 將多列組合到一列中
- 8. 如何將多個數組組合到一個新數組中?
- 9. SQL合併多行到一個多列
- 10. 在一個R中組合多個列
- 11. 將多個數組值組合成一個字符串值?
- 12. 在Entity Framework中將多行組合到一個實體中4.1
- 13. 將一個列中的多個值拆分爲多個行R
- 14. 將多列合併到一個數組中
- 15. 將值合併到一個數組
- 16. 如何將一列中的值組合到一行中?
- 17. 將3個元組列表合併到一個新列表中
- 18. 如何將每個ID的多個行組合到一個特定列的單個行中?
- 19. SQL將列中的多個值合併爲一個單元
- 20. 將多個列組合成一個長列
- 21. 將一系列按鈕組合到一個數組中ios
- 22. 將多個記錄合併到一個表中的一行
- 23. 如何將對象數組值組合到一個數組中?
- 24. 將多個不同值組合在一起的行
- 25. 如何將多行值合併到oracle中另一個表的一行中?
- 26. 將多個列組合成兩列:「列名」和「值」
- 27. 如何將兩列的組合值複製到同一個表中的一列
- 28. 將多個查詢結果組合成一行並添加列
- 29. 將多個引導程序類組合到一個SASS類中
- 30. 如何將多個元素組合到一個驗證器中?
考慮處理應用程序代碼中顯示的數據問題 – Strawberry
輸出中組件的順序對您來說是否重要? –
是的,因爲它被鏈接到輸入日期。所以它應該是在ASC的ID或DESC編號 –