2017-05-26 7 views
0

私はSQLで1つの質問を持っていますどのようにsqlの1行に3行を表示することができますか?

どのように行を3行表示できますか?ここ

が私のSQLコード

SELECT jobcard.code AS code1,jobcard.name AS name1,nvl(masterpm.id,0)toal 
FROM jobcard 
    LEFT JOIN masterpm ON jobcard.id = masterpm.jobcard_id 
        and masterpm.id in (select masterpm_id from cbmmasterpm) 

と画像が選択結果からです image

今私は1行とコードで3 TOAL行を表示することができますどのように、名前は私が本当に

ことを必要とする繰り返しますいけませんあなたは、MySQLを使用している場合
+0

互換性のないデータベースのタグを削除しました。 –

+0

@GordonLinoffありがとう:) – saman

+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-questionをお読みください/ 285557と受け入れられた答え –

答えて

1

あなたはGROUP BYGROUP_CONCATすべてTOALの値を使用することができます。例:

SELECT jobcard.code AS code1,jobcard.name AS name1, GROUP_CONCAT(NVL(masterpm.id,0)) AS toal 
FROM jobcard LEFT JOIN masterpm ON jobcard.id = masterpm.jobcard_id AND masterpm.id in (SELECT masterpm_id FROM cbmmasterpm) 
GROUP BY code1, name1; 

Here'sGROUP_CONCATのMySQLのマニュアル。

更新

Oracleを使用しているとして、あなたは同じ機能、例えば:

SELECT jobcard.code AS code1, jobcard.name AS name1, 
LISTAGG(NVL(masterpm.id,0), ', ') WITHIN GROUP (ORDER BY masterpm.id) "TOAL" 
FROM jobcard LEFT JOIN masterpm ON jobcard.id = masterpm.jobcard_id AND masterpm.id in (SELECT masterpm_id FROM cbmmasterpm) 
GROUP BY code1, name1; 

Here'sドキュメントを達成するためにlistagg機能を使用することができます。

+0

tyしかし私はoracleを使用しています – saman

+0

どのバージョンのoracleですか? –

+0

oracle 11.0.2または11g – saman

関連する問題