2017-05-22 19 views
0
TRAIN_ID TRAIN_NO SRC_DATE COACH_ID ASSIGN_COACH_FLAG USER_ID DATE_ADDED    CH_NUMBER USER_TYPE 
-------- -------- ---------- -------- ----------------- ------- ----------------------- --------- --------- 
6442 12014 2017-05-14 -  A     psaini 2017-05-16 15:20:18.262   1 TS 
6442 12014 2017-05-14 C1  T     psaini 2017-05-16 15:20:18.326   1 TS 
6442 12014 2017-05-14 C10  T     psaini 2017-05-16 15:20:18.33   1 TS 
6442 12014 2017-05-14 C11  T     psaini 2017-05-16 15:20:18.334   1 TS 
6442 12014 2017-05-14 C12  T     psaini 2017-05-16 15:20:18.337   1 TS 
6442 12014 2017-05-14 C13  T     psaini 2017-05-16 15:20:18.341   1 TS 
6442 12014 2017-05-14 C14  T     psaini 2017-05-16 15:20:18.345   1 TS 
6442 12014 2017-05-14 C2  T     psaini 2017-05-16 15:20:18.349   1 TS 
6442 12014 2017-05-14 C3  T     psaini 2017-05-16 15:20:18.353   1 TS 
6442 12014 2017-05-14 C4  T     psaini 2017-05-16 15:20:18.357   1 TS 
6442 12014 2017-05-14 C5  T     psaini 2017-05-16 15:20:18.361   1 TS 
6442 12014 2017-05-14 C6  T     psaini 2017-05-16 15:20:18.364   1 TS 
6442 12014 2017-05-14 C7  T     psaini 2017-05-16 15:20:18.368   1 TS 
6442 12014 2017-05-14 C8  T     psaini 2017-05-16 15:20:18.372   1 TS 
6442 12014 2017-05-14 C9  T     psaini 2017-05-16 15:20:18.376   1 TS 
6442 12014 2017-05-14 E1  T     psaini 2017-05-16 15:20:18.379   1 TS 
6442 12014 2017-05-14 E2  T     psaini 2017-05-16 15:20:18.383   1 TS 

これはテーブルデータです。私が欲しいものSQLクエリで何が間違っているのですか

結果は、私は結果が要件ごとにできない理由親切に私を助けて

select distinct train_no, coach_id 
from table 

を使用しています

TRAIN_NO  COACH_ID      - 
12014   C1 
      C10 
      C11 
      C12 
      C13 
      C14 
      C2 
      C3 
      C4 
      C5 
      C6 
      C7 
      C8 
      C9 
       E2 

クエリです。

+0

あなたが望むのはなぜそれ?列番号を複数の行に表示したくない場合は、複雑なクエリをデータベースに書き込むのではなく、プレゼンテーション層で列番号を表示することができます。 –

+0

しかし、train_noは変更することもできますし、そのtrain_noに複数のコーチを割り当てることができますので、複雑なクエリを作成する必要があります。 – sparrowTrajon

+0

次に列車番号の変更など、あなたが望むものを正確に表示してください。 –

答えて

0
select * from traindetails; 

出力:次のように

TRAINID COACHNAMES 
12014  c1 
12014  c2 
12014  c3 
12014  c4 
12014  c5 
12014  c6 
12014  c7 
12014  c8 
12014  c9 
12014  c10 

あなたの条件に基づいてクエリは次のようになります。次のように

SELECT a.COACHNAMES as coah_names , 
      CASE 
       WHEN a.rnk = 1 THEN a.TRAINID 
       ELSE NULL 
      END AS TRAIN_ID 
    FROM (
       SELECT a.*, 
        RANK() OVER(PARTITION BY a.TRAINID ORDER BY a.COACHNAMES) rnk 
        FROM traindetails a 
       ) a 

出力は次のようになります。

COAH_NAMES TRAIN_ID 
c1   12014 
c10 
c2 
c3 
c4 
c5 
c6 
c7 
c8 
c9 
関連する問題