股票数据表:
编号,名称,昨收,今开,最高,最低,现价,涨幅,日期
如何显示今天和昨天涨幅超过5%的股票?如:600090,今天的涨幅是 10%,昨天的涨幅是 10%,如果列出这类股票。不使用视图和子查询。谢谢。

解决方案 »

  1.   


    select a.[编号], a.[名称], [今日涨幅] = a.[涨幅], [昨日涨幅] = b.[涨幅]
    from [股票数据表] a,[股票数据表] b
    where a.[编号]=b.[编号] and a.[日期]=b.[日期]+1
    a.[日期] = @today and [涨幅] >= 10%
      

  2.   

    --不使用子查询,只能使用连接来实现了.--创建表
    create table stock(stock_no varchar(10),deal_date date,change_rate decimal(9,2));--插入测试数据
    insert into stock values('600090','2007-01-01','0.1');
    insert into stock values('600090','2007-01-02','0.1');
    insert into stock values('600001','2007-01-02','0.01');--查询语句select * 
    from stock a left join stock b 
    on a.stock_no=b.stock_no and a.deal_date = b.deal_date+1 
    where a.change_rate>0.05 and b.change_rate>0.05;