2

NewsPaperDateの下の1つの列にのみ挿入される、特定の値に対して2つの新聞発行日が存在する可能性があるテーブルがあります。残りのすべての値が複製されます。次に、2つのNewsPaperDate値を2つの列(NewsPaperDate1とNewsPaperDate2)の下の単一の行に表示し、残りの値を表示するクエリを作成する必要がありますここに画像の説明を入力してください。誰かがこれを手伝うことができますか?データベースはSQLServerですここに画像の説明を入力してください テーブル構造は

4

3 に答える 3

4

テーブルをそれ自体に結合する必要があります。これを行うにはさまざまな方法がありますが、スクリーンショットに基づいて行うことができます。

select 
    a.yonja_no, 
    a.newspaper_date as newspaperdate1, 
    b.newspaper_date as newspaperdate2
from newspapertable a, newspapertable b
where a.yonja_no = b.yonja_no
and a.newspapere_s > b.newspapere_s
;

(編集:コメントを参照)

于 2013-01-16T06:42:44.650 に答える
2

サンプルデータを使用してクエリ実行のフィドルリンクを確認する

create table tab1(newspaperDate number,b number,c number);
INSERT INTO tab1 VALUES(1,2,3);
INSERT INTO tab1 VALUES(2,2,3);
INSERT INTO tab1 VALUES(3,3,4);


SELECT t1.newspaperDate AS date1,t2.newspaperDate AS date2 , t1.b AS b1,t1.c AS c1 FROM tab1   t1 , tab1   t2
WHERE t1.newspaperDate < t2.newspaperDate AND t1.b=t2.b ;

出力

| DATE1 | DATE2 | B1 | C1 |
---------------------------
|     1 |     2 |  2 |  3 |
于 2013-01-16T06:53:45.307 に答える
1

テーブルをそれ自体に結合することは、クエリにとって最良のアプローチです。これを読む

http://www.thunderstone.com/site/texisman/joining_a_table_to_itself.html

于 2013-01-16T07:12:25.867 に答える