-1

お前らおはよう、

次のテーブルがあります。

 operator(ope_id, ope_name)
 ope_shift(ope_id, shift_id, shift_date) 
 shift(shift_id, shift_start, shift_end)

これはデータのより良いビューです http://latinunit.net/emp_shift.txt

これは、テーブルへの select ステートメントのスクリーンショットです http://img256.imageshack.us/img256/4013/opeshift.jpg

このコードを使用しています

SELECT OPE_ID, COUNT(OPE_ID) AS Total_shifts
from operator_shift
group by ope_id;

オペレーターごとの現在の合計シフトを表示すると機能しますが、さらに500行ある場合は、それらすべてをカウントします.質問は、誰かが私のデータベースを機能させるより良い方法を持っているか、システムにそれらをどのように伝えることができますか?行は 1 か月です。友人がカウントについて何か言ったのを覚えていますが、30 で割りますが、わかりません。月が終わっていない場合はどうなりますか? そして、現在までのシフトが最も高い従業員を表示したい

4

1 に答える 1

0

where 句を追加する必要があります。

where shift_date in ('2010-04-01', '2010-04-30')

または交互に

where (shift_date >= '2010-04-01' AND shift_date < '2010-05-01')

特定の実装に合わせて日付形式をごまかす必要があるかもしれません。

于 2010-04-26T11:41:08.707 に答える