0

OracleからMySQLに移植するために必要な次のクエリがあります。どちらもコンパイルエラーなしで実行されますが、結果テーブルは異なります。Oracleにいる間、各カウント列の下で個々のカウントを取得します。しかし、MySQLでは、カウントがどこにあるかに関わらず、それらはすべてa5の下に到達します。そのようです:

Oracleの場合:ここに画像の説明を入力してください

しかし、MySQLでは:ここに画像の説明を入力してください

select x1.alert_level, count(x1.a1),  count(x1.a2), count(x1.a3), 
count(x1.a4), count(x1.a5) from 
(select  
table_name.column_name alias, 
case when (now() - column_name) <= 7 then 1 end as a1,  
case when (now() - column_name) between 7 and 30 then 1 end as a2, 
case when (now() - column_name) between 30 and 60 then 1 end as a3,
case when (now() - column_name) between 60 and 90 then 1 end as a4, 
case when (now() - column_name) >= 90 then 1 end as a5 
FROM tables
WHERE filter_conditions)  x1  GROUP BY x1.alias;

違いを調整して、MySQLの出力をOracleの出力のようにするにはどうすればよいですか?助けてくれてありがとう!

4

1 に答える 1

1

私は使用datediffしました、そしてそれは完全に働きました!

于 2013-03-04T02:56:40.797 に答える