我有一个表,其中可以有两个报纸发布日期的特定值,该值仅插入 NewsPaperDate 下的单个列中。所有剩余的值都会重复。现在我必须编写一个查询,其中两个 NewsPaperDate 值应该显示在两列下的单行中,NewsPaperDate1 和 NewsPaperDate2,其余的值。有人可以帮忙吗?数据库是 Sql Server 表结构是
问问题
726 次
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 回答