2

我有一个表,其中可以有两个报纸发布日期的特定值,该值仅插入 NewsPaperDate 下的单个列中。所有剩余的值都会重复。现在我必须编写一个查询,其中两个 NewsPaperDate 值应该显示在两列下的单行中,NewsPaperDate1 和 NewsPaperDate2,其余的值在此处输入图像描述。有人可以帮忙吗?数据库是 Sql Server在此处输入图像描述 表结构是

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 回答