iT邦幫忙

0

如何在SQL比較三個不同欄位

  • 分享至 

  • xImage

大家好

如果在DB中有三個日期欄位來自三個不同的table而我必須要比較三個日期的大小,然後顯示最大的日期的話,該如何寫SQL指令?謝謝!!

Roger

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

6
賽門
iT邦超人 1 級 ‧ 2010-10-28 17:27:44
最佳解答

有很多做法...我比較會用的是...
例如:
TableA --> ColumnA --> 型別DATETIME
TableB --> ColumnB --> 型別DATETIME
TableC --> ColumnB --> 型別DATETIME

<pre class="c" name="code">SELECT A.ColumnA
  FROM TableA A, TableB B, TableC C
 WHERE A.ColumnA > B.ColumnB
   AND A.ColumnA > C.ColumnC
UNION
SELECT B.ColumnB
  FROM TableA A, TableB B, TableC C
 WHERE B.ColumnB > A.ColumnA
   AND B.ColumnB > C.ColumnC
UNION
SELECT C.ColumnC
  FROM TableA A, TableB B, TableC C
 WHERE C.ColumnC > A.ColumnA
   AND C.ColumnC > B.ColumnB

實務上, Table結構不會這麼簡單, Where條件要仔細下好.

6
jeffreyhu
iT邦新手 4 級 ‧ 2010-10-28 22:16:32

select max(cdate) as max_date from (
select t1.date1 as cdate from table t1
union all
select t2.date2 as cdate from table t2
union all
select t3.date3 as cdate from table t3
)

select max(cdate) as max_date from (
select max(t1.date1) as cdate from table t1
union all
select max(t2.date1) as cdate from table t2
union all
select max(t3.date3) as cdate from table t3
)
這樣比較快,也少union一些資料

我要發表回答

立即登入回答