答えて
あなたは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;
そのコンポーネントは動的ですが、私は2つのコンポーネントで試しました。出力のみのパッケージを取得しています。コンポーネントとマークは表示されません。 –
@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つのコンポーネントに固定されません。この例を考えると、私は3つのコンポーネントを含んでいます。 –
<?php には 'connect-db.php'が含まれています。$ query = "SELECT t.package_no、MAX(IF(t.work_component = '$ work_component'、t.daily_progress、NULL))AS Sewer FROM daily_progress_demo t WHERE package_no = '$ package_no' GROUP BY t.package_no;"; $ 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. Excelを複数の列を1つの行にまとめる
- 2. 1つの行から複数の行を1つの行にまとめる
- 3. 複数の行を1つの行にまとめるMySQL
- 4. 複数の列セットを1つの列にまとめる
- 5. 複数行の値を1行にまとめるSSRS式
- 6. 複数の行のデータを1行、複数の列にまとめる
- 7. 複数の目標値/変数を1つにまとめる
- 8. 複数の時系列行を1つの行にまとめます。
- 9. 複数の文字列配列を1つにまとめる
- 10. 複数の値を1つにまとめるmysqlクエリ
- 11. oracle複数の行を1つにまとめる
- 12. 複数の行を1つにまとめる
- 13. 複数のバイト配列イメージを1つにまとめる
- 14. 複数の列を1つにまとめる方法R
- 15. 複数の行を複数の列と1つの行にマージする方法
- 16. 複数のグラフを1つにまとめ、値ラベル
- 17. 複数の列を2つの列にまとめる: "列名"と "値"
- 18. 複数の行の値を1つの行に入れます
- 19. 複数の行を1行と複数の列にする
- 20. 複数の行をdisticnt行の値で1つの列にマージする
- 21. 1列に同じ値を持つ複数の行
- 22. SQL Serverは複数の行を1つの行にまとめます
- 23. 複数の配列値を1つの値に追加する
- 24. - 複数の行と1列
- 25. 複数の行を1つの列にまとめてデータを複製するのはなぜですか?
- 26. SQL複数の行を1行にまとめる
- 27. 複数行のデータを1行にまとめる
- 28. 複数の行を1行にまとめる
- 29. SELECT文で複数の行を1行にまとめる
- 30. Rを複数の行を1行にまとめます - 同じ列
アプリケーションコード内のデータ表示の取り扱いに関する考慮事項 – Strawberry
出力のコンポーネントの順序はあなたに関係しますか? –
はい、入力された日付にリンクされています。だから、IDでのASCかIDでのDESCのどちらかでなければなりません –