我的mysql数据库里有这样两张表:
product_table(产品表):produc_id(产品编号) char(36),
                       product_name(产品名)char(20);
price_table(价格表):produc_id(产品编号) char(36),
                       highs(最高价) float(15,2),
                       low(最低价) float(15,2),
                       date(日期)date;
两个表有produc_id做关联:
我现在向显示的是这样的结果:日期             苹果             香蕉            梨子
YY-MM-DD     最低价-最高价    最低价-最高价    最低价-最高价 
2009-10-15   78.89-89.67      78.89-89.67      78.89-89.67 如何写sql语句呢?

解决方案 »

  1.   

    贴记录出来看看
    select date(date),max(if(product_name='苹果',highs,0)) as 最高价,
    max(if(product_name='苹果',low,0)) as 最低价, ....
    from price_table left join product_table b on a.produc_id=b.produc_id
    group by date(date)
      

  2.   

    那就要用SP来动态生成SQL语句再执行,思路是一样的select date(date),concat(max(if(product_name='苹果',highs,0)),'-',
    max(if(product_name='苹果',low,0))), ....
    from price_table left join product_table b on a.produc_id=b.produc_id
    group by date(date)
      

  3.   

    参考
    http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html
    中我的回答
      

  4.   

    select date(date),concat(max(if(product_name='苹果',highs,0)),'-',
    max(if(product_name='苹果',low,0))) as 苹果, ....
    from price_table left join product_table b on a.produc_id=b.produc_id
    group by date(date)
      

  5.   


    这个可以显示我要的那种格式,但是像这些名字都是自己sql语句写进去的,我想要的自动显示,比如说这次里面是‘苹果’,‘梨子’,‘香蕉’,下次可能还要加上‘猕猴桃’,‘草莓’,也有可能‘苹果’就不要了,可能就删了
      

  6.   

    对,要SP来动态生成SQL语句再执行,思路是一样的
    参考
    http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html
    中我的回答
      

  7.   

    参考
    http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html
    中我的回答
      

  8.   

    参考下贴中的多种方法。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/06/19/4283943.aspx