|
▼かるびの さん:
>>希望の結果クエリ
>>|会社名 |件数
>>|太郎建設|100
>>|三郎建設|20
>
> これは、どういうことをやりたいんですか。
>
> SELECT 会社名,件数
> FROM 氏名
> WHERE ID = 1 OR ID = 4
>というクエリを実行すれば、上記の結果になりますが、
>「IDが1又は4であるレコード」なんていう抽出条件では、おそらく意味を成しませんよね。
>
>
>>氏名テーブル
>>ID |名前|会社名 |件数
>>1 |太郎|太郎建設|100
>>2 |二郎|二郎建設|300
>>3 |一郎|一郎建設|10
>>4 |三郎|三郎建設|20
> さらに、氏名テーブルに「件数」フィールドがあるというのは、かなり理解しがたいです。
> 件数は人の属性である、
>つまり、時期がいつであるかにかかわらず、人が決まれば件数が決まる
>というものなのであれば、氏名テーブルに件数フィールドを持たせてもいいと思いますが、
>おそらく、件数は、人が同じでも、時期が違えば件数が変わるというものなのでしょうから、
>件数は、別のテーブルに持たせるべきです。
> 「テーブルの正規化」ということを考えてみてください。
>
> テーブルが正規化されていないと、無駄に複雑なクエリやVBAを組むことになりますし、
>その場合、コンピュータの処理速度も遅くなるし、
>BBSで質問しようとしてももなかなか回答がつかないし、
>いいことは何もないです。
>
> 「テーブルの正規化」についての詳しいことは、ネットで検索してください。
> 私も正確なところはよくわかっていませんが、
>極めて大雑把に言うと、コンピュータにとって使いやすいようにテーブルを分けることです。
>そして、正規化されたテーブルは人間にとっては見づらいです。
お返事有難うございます
> これは、どういうことをやりたいんですか。
大変申し訳ないです
テーブルは例題です
本当のフィールド名は違います
氏名テーブル(元の名前です)
ID|支払コード|金額
1 |A0001 |300
2 |B0002 |400
3 |C0003 |1
4 |C0003 |500
5 |A0001 |300
上記のように置き返れば解りやすかったかもしれません
会社名称変換テーブル(元の名前です)
ID|変更前|変更後|
1 |C0003 |A0001
本来支払をしなければならないコードに対して
結果クエリ
支払コード|金額|
B0002 |400
C0003 |500
支払コードと金額を変更させたい
色々なご指摘有難うございます
テーブルの正規化は
名前程度ですが存知上げています
これを機会に勉強させて頂きたいと思います
ほぼ上記に近テーブル状態です
分ける必要ありますか?
質問に対して混乱を招いてしまって申し訳ありません
|
|