1

「バランス」と呼ばれる新しい列に新しい金額を表示するために、いくつかの行から金額を差し引くmysqlクエリがあります。Balance>'0'のレコードのみを表示したいと思います。下記参照:

    SELECT 
visits.visit_id,
visits.payment_increments,
((visits.total - visits.paid) - SUM(payments.amount)) AS Balance,
schedule.schedule_date
FROM
visits
    LEFT OUTER JOIN
schedule ON visits.schedule_id = schedule.id
    LEFT OUTER JOIN
payments ON visits.visit_id = payments.visit_id
WHERE
Balance>'0'
GROUP BY visits.visit_id

WHEREステートメントで新しい列を使用する方法はありますか?現在、表示されているのはエラー->エラーコード:1054「where句」の不明な列「バランス」だけです。

どんな助けでも大歓迎です!

4

3 に答える 3

2

HAVINGの代わりに使用WHERE

GROUP BY ... HAVING Balance >0

注: HAVINGテーブル以外の列で機能します..バランスはメインテーブルの列ではないため、これは架空の列であるため、テーブル列とHAVING同様に機能しますWHERE

Read more...

于 2013-03-20T04:29:27.673 に答える
1
  SELECT 
visits.visit_id,
visits.payment_increments,
((visits.total - visits.paid) - SUM(payments.amount)) AS Balance,
schedule.schedule_date
FROM
visits
    LEFT OUTER JOIN
schedule ON visits.schedule_id = schedule.id
    LEFT OUTER JOIN
payments ON visits.visit_id = payments.visit_id

GROUP BY visits.visit_id HAVING  Balance>'0'
于 2013-03-20T04:31:49.287 に答える
0

完全な列名を指定するだけで、同じSQLクエリを使用できます

   SELECT 
   visits.visit_id,
   visits.payment_increments,
   ((visits.total - visits.paid) - SUM(payments.amount)) AS Balance,
   schedule.schedule_date
  FROM
     visits
    LEFT OUTER JOIN
   schedule ON visits.schedule_id = schedule.id
   LEFT OUTER JOIN
  payments ON visits.visit_id = payments.visit_id
WHERE
  ((visits.total - visits.paid) - SUM(payments.amount))>'0'
 GROUP BY visits.visit_id
于 2013-03-20T05:14:33.683 に答える