0
これは私がカウント制限
unit
を持つ2つのテーブルです:私はノーカウントする必要が
name | unit name
-----------------------------
worker 1 | unit 1
worker 2 | unit 1
worker 3 | unit 1
worker 4 | unit 1
worker 5 | unit 1
worker 6 | unit 2
:
unit name | no. of beds
-----------------------------
unit 1 | 4
unit 2 | 3
worker
各ユニットのベッド数を制限しますが、各ユニットのベッド数に制限があります。私。テーブルユニットではユニット1はベッド4台と定義されていますが、テーブルワーカーではユニット1にタグ付けされた5人のワーカーしかいません。
これは私が今持っているものですが、いいえ、無視してください。各部屋ごとに定義されたベッド数。
私が望む結果は、利用可能なベッドの数に "2"を返すことです。それを私のクエリにどのように組み込むことができますか?可能なベッドhttp://sqlfiddle.com/#!9/88734/2
SELECT
u.unit_name,
if(w.cnt<=u.no_of_beds,u.no_of_beds-w.cnt, IF(w.cnt IS NULL,u.no_of_beds,0)) beds_available
FROM unit u
LEFT JOIN (
SELECT count(*) cnt, unit_name
FROM worker
GROUP BY unit_name) w
ON w.unit_name = u.unit_name;
の
– jarlh
これは、 "テーブルユニット、ユニット1が4つのベッドを持つように定義されているが、テーブルワーカーでユニット1にタグ付けされた5人のワーカーがいる場合は、 – e4c5
jarlh、あなたはアクティブな列を無視することができます。実際には、すべてのユニットはアクティブまたは非アクティブです。それは私の質問に対してもう一つの条件です。 –