3

mysql クエリを作成していて、エラーが発生しました。

「'フィールド リスト' の不明な列 'dat'」

このエラーは、mysql の IF 条件でエイリアスを使用したために発生しました。

これがmysqlクエリです:

SELECT 
    nCustomerID,
    dDateRegistered,
    (select count(nPlayerID) from credit_logs 
        where nPlayerID=nCustomerID) as total_clog,
    (select count(nPlayerID) FROM bl_transaction_history
        where nPlayerID=nCustomerID) as total_tran,
    (select count(nCustomerID) from customer_freeplays
        where nCustomerID=nCustomerID) as total_free,
    (select dDateAdded from bl_transaction_history
        where nPlayerID=nCustomerID) as dat,
    (select DATEDIFF(now(),dat)/30 ) as date_differece1,
    (select DATEDIFF(now(),dDateRegistered)/30 ) as date_difference2,
    IF (dat IS NOT NULL,(select DATEDIFF(now(),dat)/30 ),
        (select DATEDIFF(now(),dDateRegistered)/30 )) as date_difference
FROM bl_customers
WHERE nAccountStatus=1 
  and bDeleted=0 
having total_clog>0 
    or total_tran>0 
    or total_free>0

どんな助けも感謝されます.. :)

前もって感謝します。

4

1 に答える 1

6

他の列の選択内では、エイリアス列を使用できません。エイリアスしているクエリの全体を何度もコピーする必要があります。すなわち。最初の宣言の後、すべての dat を (bl_transaction_history から dDateAdded を選択し、nPlayerID=nCustomerID を選択) に置き換えます。

于 2012-05-05T14:22:15.297 に答える