0

私はテーブルを持っています:

last_billed DATE DEFAULT "0000-00-00"
bill_interval varchar(10) DEFAULT "Monthly" (other values are: Quarterly, Half-yearly, Yearly)

簡単なクエリを実行しますが、次のことが必要です。

ORDER BY (last_billed + bill_interval)

これは、bill_interval の値に応じて、last_billed の日付から 1 か月、3 か月、6 か月、または 12 か月後の日付を指定する必要があります。これで、クエリが可能になるのであれば、必要に応じて bill_interval を任意の値に変更できます。

どこから始めればよいかわかりません。そのため、いつものようにフィードバックをお待ちしております。

4

2 に答える 2

1

試す:

ORDER BY last_billed + 
    CASE bill_interval
        WHEN "Montly" THEN INTERVAL 1 MONTH
        WHEN "Half-Yearly" THEN INTERVAL 6 MONTH
        WHEN "Yearly" THEN INTERVAL 1 YEAR
    END

bill_interval列を月数に変更すると、次のように簡単になります。

ORDER BY last_billed + INTERVAL bill_interval MONTH
于 2013-09-19T22:12:04.410 に答える
0
ORDER BY DateAdd("m", 
  case substring(bill_interval,1,1) when 'M' then 1 
                                    when 'Q' then 3 
                                    when 'Y' then 12 
  end, last_billed)
于 2013-09-19T22:21:19.627 に答える