検索

ホームページ  >  に質問  >  本文

mysql 多表查询 比较两个字段最大、最小值,并显示对应字段

有两个表,表A和表B,结构相同,但是具体字段不同,在表A.date = B.date条件下,查询出以下结果:MAX(A.ticker_buy-B.ticker_sell) 和MIN(A.ticker_buy-B.ticker_sell) ,即同一时间下两个表不同字段的差值的最大值和最小值,并显示对应最大值、最小值对应的date字段,我尝试用sql语句写了下,但是结果不对(用excel大致比较过)。我的语句如下:

select max(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最大差价",min(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最小差价",okcomfuturetickerquarter.date as "时间" from okcomfuturetickerquarter,okcomfuturetickernextweek where okcomfuturetickerquarter.date=okcomfuturetickernextweek.date and okcomfuturetickerquarter.ticker_buy is not null and okcomfuturetickernextweek.ticker_sell is not null ,

请各位大神帮助,写出正确查询语句。

伊谢尔伦伊谢尔伦2837日前790

全員に返信(2)返信します

  • 迷茫

    迷茫2017-04-17 14:58:16

    まず、非常に長いテーブル名について文句を言わせてください...

    SELECT a.date as "時刻", max(a.ticker_buy-b.ticker_sell) AS "最大価格差",min(a.ticker_buy-b.ticker_sell) AS "最小値価格差" " FROM a,b
    WHERE a.date = b.date
    そして、a.ticker_buy は NULL ではありません
    そして b.ticker_sell が NULL ではありません
    GROUP BY a.date;

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:58:16

    max のパラメータは列名である必要があります。まず各行のticker_buyとticker_sellの差を計算し、order byを使用して最初のものを選択します。
    select (a.ticker_buy-b) .ticker_sell) a,b からのティッカーとして、a.date = b.date GROUP BY a.date ティッカー順;

    返事
    0
  • キャンセル返事