No.4ベストアンサー
- 回答日時:
私が設計するなら・・
社員ID,給料,適用開始年月,適用終了年月
101,\100,200801,200807
101,\110,200808,999999
102,\200,200801,999999
103,\200,200801,200805
な感じかな。
更新するときは、適用終了年月が999999のデータを、実際の終了年月で更新し、
新たなレコードを作成する。(新たなレコードの適用終了年月は999999)
新入社員は、新たなレコードを作成するだけ。
社員が辞める場合は、終了年月を埋めるだけ。
データを検索する場合は、
where 調査したい年月>=適用開始年月 and (調査したい年月<=適用終了年月 or 適用終了年月=999999)
で探す。
データは、会社の会計年度に合わせるのでなく、歴日で持ち、会計年度で取り扱う必要箇所が多いのであれば、
会計年度と会計期間の変換機能を用意し、人の目に触れるところだけ、会計年度に変換し表示します。
会社の会計年度は変更される場合があるけれど、データまで会計年度で管理すると、変更があった場合に煩わしいから。
これは、日付の和暦と西暦と同じような話で、ユーザインタフェースが和暦であっても、
データとしては和暦でなく西暦で管理するのと同じと考えます。
この回答への補足
なるほどですね。ありがとうございます。ここで型について無知なので教えてください。200809などはDATE型で格納したほうがいいですよね??(charaでもいけるような気が・・・でもDATE型の方がいいですよね?)その時999999はデータ型として認識されるのでしょうか?
補足日時:2008/09/16 20:25No.3
- 回答日時:
>2008年の9月の社員全体の給料合計を求めたいんです。
これに対するSQLを書いたのですが、給料適用開始年でなく年度だったんですね。
表の持ち方は、年度制でない方が良いと思いますよ。
(先に示したSQLは、1月が年度の開始月の場合でしか正しく評価できません)
>条件としては、指定した月の全社員の給料がいつでもみれることです。
ということなら、
select 社員ID,給料適用開始年,給料適用開始月,給料
from
(
select
社員ID,給料適用開始年,給料適用開始月,給料,
row_number() over(partition by 社員ID order by 給料適用開始年 desc,給料適用開始月 desc) R
from 給料表
where to_date(to_char(給料適用開始年,'FM9999')||to_char(給料適用開始月,'FM99'),'yyyymm') <= to_date('2008/09','yyyy/mm')
)
where R=1
;
で、いつでも指定した年月時点の社員別給与が一覧できます。
>しかし理解できませんでした・・・。
特別難しいとこはしていない、普通のSQL文です。
理解できない部分はマニュアル読むだけで理解できると思いますよ。
(サブクエリ部分だけを実行すると理解しやすいと思いますけどね)
ありがとうございます。もしk_o_r_o_c_h_a_nさんが社員ID、給料を必須の属性として他に属性を増やしてよいという条件ならどのように表を設計しますか??ただし給料の変更が決まったときにしかレコードを増やせなくて、年度制でこれを実現したいのです。何かアドバイスお願いいたします。
No.2
- 回答日時:
select sum(給料)
from
(
select
給料,
row_number() over(partition by 社員ID order by 給料適用開始年 desc,給料適用開始月 desc) R
from 給料表
where to_date(to_char(給料適用開始年,'FM9999')||to_char(給料適用開始月,'FM99'),'yyyymm') <= to_date('2008/09','yyyy/mm')
)
where R=1
;
※サブクエリ中の条件の to_date('2008/09','yyyy/mm') の部分に求めたい年月(例では、2008/09)を指定してください。
ありがとうございます。しかし理解できませんでした・・・。実のことをいうとテーブルの属性をかえることができます。条件としては、指定した月の全社員の給料がいつでもみれることです。こちらの要望としては、給料を変更したときだけデータを更新する、いつ給料がかわるかはわからない、給料が下がることもある、の3点です。あとはこれを一つのテーブルで実現したいのです。何か案があればよろしくお願いいたします。PL/SQLでも構いません。
No.1
- 回答日時:
実現が難しい理由は、「給料適用開始年度」と「給料適用開始月」が別れていることと、月別のデータがないと言う点です。
前提条件として、給料は年月が進に連れて上昇するものだとします。「給料適用開始年度」と「給料適用開始月」を連結してYYYYMMの型式にして、200809以前で社員ID毎に給与の最大値を「200809給与」というテーブルに出力します。これで、9月時点の人別の給料が分かります。
「SELECT 給料表.社員ID, Max(給料表.給料) AS 給料の最大 INTO 200809給与 FROM 給料表 WHERE ((([給料表]![給料適用開始年度] & Right("0" & [給料表]![給料適用開始月],2))<=200809))
GROUP BY 給料表.社員ID;」
「200809給与」さえ出来てしまえば、サマリーしてしまえば終わりです。
「SELECT Sum([200809給与].給料の最大) AS 給料の合計 FROM 200809給与;」
前提条件(給料は年月が進に連れて上昇する)が崩れる場合は、データに適用終了年月のデータがないとデータを抽出できません。「適用開始年月」と「適用終了年月」が「YYYYMM」の型式で入っていたら、この前提条件を考慮する必要が無く、かつ一発で答えが求められます。
「SELECT Sum(給料表.給料) AS 給料の合計 FROM 給料表 WHERE (((給料表.適用開始年月)<="200809") AND ((給料表.適用終了年月)>="200809"));」
ご丁寧にありがとうございます。実のことをいうとテーブルの属性をかえることができます。条件としては、指定した月の全社員の給料がいつでもみれることです。こちらの要望としては、給料を変更したときだけデータを更新する、いつ給料がかわるかはわからない、給料が下がることもある、の3点です。あとはこれを一つのテーブルで実現したいのです。何か案があればよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server SQL Oracle serverにって質問です。 会社テーブルがあり、そのテーブルから 社員名、給 4 2022/05/21 12:22
- 健康保険 【健康保険証の健康保険任意継続制度についての質問です】 ケース1 20代の現役世代の 4 2023/08/17 17:58
- 厚生年金 2022年10月から、パート・アルバイト短時間労働者の厚生年金・社会保険の加入義務 2 2022/09/09 22:52
- 年末調整 令和4年分 給与所得者の基礎控除申告書 兼 給与所得者の配偶者控除等申告書 兼所得金額調整控除申告書 3 2022/11/04 03:46
- 財務・会計・経理 賞与の社保料、所得税 私は、小さな会社の経営者の妻で、事務労務をしています。 うちの会社は賞与がない 2 2022/05/24 19:50
- 厚生年金 友人がアルバイトをしているのですが 今年の4月から社会保険が適用されていて、毎月社会保険は1万500 3 2022/08/10 00:56
- 労働相談 閲覧ありがとうございます。 現在の会社に転職し約1週間になるのですが、正社員雇用のはずが定時保証がな 3 2023/06/12 18:15
- 正社員 障害者雇用の契約社員から正社員登用について 2 2022/10/27 22:26
- その他(お金・保険・資産運用) 年間の国民保険料金は前年度の収入で決まりますが、固定給でなくて出勤日数で給料が決まる会社の場合、前年 4 2022/12/27 07:40
- 労働相談 有給休暇使用時の賃金の計算方法について 5 2022/04/04 00:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
生きていくって本当に大変。 人...
-
アルバイトで2022年12月1日から...
-
ネクストレベルの給料を引き出...
-
親の収入が激減して奨学金を申...
-
給料袋と胃袋と金玉袋のどれを...
-
実入りが少ないとは給料が少な...
-
昇給3000円だったら1か月250円...
-
風俗の出稼ぎに来て2日目。 ビ...
-
女の方が給料高いとうまくいか...
-
退職時も「能力だけは認めるわ...
-
給料が安い?給料が低い?
-
給料制の芸能プロダクション
-
エンジニアってお給料高いですか?
-
株式投資について。 株式投資を...
-
半日が0.5日で5分なら、0.6は?
-
彼氏と3年付き合ってて同棲して...
-
セイムスで働いてる人に質問で...
-
同じ会社内で他人の給料を聞い...
-
お給料が支払われず困っていま...
-
皆さんは、毎月いくらの給料で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
給料はどのくらいでしょうか
-
アルバイト2つを掛け持ちして、...
-
現場仕事してるんですけど つい...
-
ミニストップで最近アルバイト...
-
女の方が給料高いとうまくいか...
-
生きていくって本当に大変。 人...
-
給料が高いけど家から遠い職場...
-
親の収入が激減して奨学金を申...
-
ネクストレベルの給料を引き出...
-
社会保険料についての質問です...
-
コスプレを買うか悩んでます ど...
-
通勤時間 片道1時間半と5分な...
-
4月1日から新年度になります...
-
この場合はどうしたら良いですか?
-
給料が安い?給料が低い?
-
同じ会社内で他人の給料を聞い...
-
麻酔科医って当直もないし、他...
-
株式投資について。 株式投資を...
-
給料袋と胃袋と金玉袋のどれを...
-
今年7月の給料と9月の給料の控...
おすすめ情報