このディレクトリの索引

% 以下のサイトは http://hibari.2ch.net/test/read.cgi/db/1274791771/369 # 会社コード|部署コード|課コード|給料 # # というテーブルがあったとき、 # GROUP BY 会社コード , 部署コード # で部署毎の給料合計を出したいけど、 # 抽出結果の列には課コードも含めたい、 # というときってどうしたら良いのでしょうか? # イメージは↓の感じです。 # A会社|B部署|C課|100万円 # A会社|B部署|D課|100万円 # A会社|E部署|F課|500万円 # A会社|E部署|G課|500万円 # '抽出結果に課コードを加えた、会社コード・部署コードで集約した給与合計ならび'(_給与合計ならび) :- findsetof([_会社コード,_部署コード,_課コード],給料(_会社コード,_部署コード,_課コード,_),L1), findall([_会社コード,_部署コード,_課コード,_給与合計],( member([_会社コード,_部署コード,_課コード],L1), findsum(_給与,給与(_会社コード,_部署コード,_,_給与),_給与合計)),_給与合計ならび). % 以下のサイトは http://hibari.2ch.net/test/read.cgi/tech/1291471791/611 # [1] 授業単元: C言語 # [2] 問題文(含コード&リンク): # http://ime.nu/www1.axfc.net/uploader/File/so/55622 ←問題文です # http://ime.nu/www1.axfc.net/uploader/File/so/55623 ←datファイルです # # (1) C言語における各文の基本機能に対する設問。 # (例えば、下記の様なもの) # ・変数の宣言、型 # ・代入文 (四則演算、剰余、演算子等を含む) # ・if文 # ・while文 # ・for文 # ・switch/case文 # # (2) 課題による実際のプログラミング。 # ・hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し、そのデータを # 金額とした時の金種の一覧を表示するプログラムを作成せよ。 #   但し、kyuuyo.datファイルはint型の複数データが格納されたバイナリファイルとする。 'hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し、そのデータを金額とした時の金種の一覧を表示するプログラムを作成せよ。但し、kyuuyo.datファイルはint型の複数データが格納されたバイナリファイルとする。' :- 'hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し'(_金額ならび), write(',給与,一万円,五千円,千 円,五百円,百 円,五十円,十 円,五 円,一 円\n'), 'そのデータを金額とした時の金種の一覧を表示する'(1,_金額ならび,0,_,[0,0,0,0,0,0,0,0,0],_). 'hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し'(_金額ならび) :- open('h:\\ogawa\\kyuuyo.dat',read,instream,[type(binary)]), データを入力(Instream,L), close(Instream). データを入力(Instream,[]) :- at_end_of_stream(Instream),!. データを入力(Instream,[N|R]) :- '4byteづつ入力する'(Instream,[N1,N2,N3,N4]), N is N1 * 256 * 256 * 256 + N2 * 256 * 256 + N3 * 256 + N4, データを入力(Instream,R). '4byteづつ入力する'(Instream,[]) :- !. '4byteづつ入力する'(Instream,[N|R]) :- get_byte(Instream,N), '4byteづつ入力する'(Instream,R). 'そのデータを金額とした時の金種の一覧を表示する'(_,[],_金額合計,_金額合計,LS,LS) :- 金種表示(' ',_金額合計,LS),!. 'そのデータを金額とした時の金種の一覧を表示する'(N,[_金額|R],_金額合計1,_金額合計,LS1,LS) :- _金額合計2 is _金額合計1 + _金額, 金種計算(_金額,_金種ならび,LS1,LS2), 金種表示(N,_金額,_金種ならび), N2 is N + 1, 'そのデータを金額とした時の金種の一覧を表示する'(N2,R,_金額合計2,_金額合計,LS2,LS). 金種計算(_金額,_金種ならび,LS1,LS) :- 金種計算(_金額,[10000,5000,1000,500,100,50,10,5,1],_金種ならび,LS1,LS). 金種計算(_,[],[],[],[]) :- !. 金種計算(K,[K1|R1],[K2|R2],[S1|R3],[S2|R4]) :- K2 is K // K1, K3 is K mod K1, S2 is S1 + K2, 金種計算(K3,R1,R2,R3,R4). 金種表示(N,_金額,_金種ならび) :- write_formatted('%t,%t,%t,%t,%t,%t,%t,%t,%t,%t,%t\n',[N,_金額|_金種ならび]). % 以下のサイトは http://toro.2ch.net/test/read.cgi/db/1294641578/939 # 下記の図に示すリレーション社員と部門の属性所属と部門番号上の統合結合演算を、 # リレーション社員と部門の属性所属と部門番号上の大なり結合演算に # 書き直したらどうなりますか????? # # 社員[所属=部門番号]部門 # # |社員.社員番号 | 社員.社員名 | 社員.給与| 社員.所属|部門.部門番号|部門.部門名|部門.部門長| # | 0650 | 鈴木一郎 | 50 | K55 | K55 | データベース| 0650 | # | 1508 | 浜崎アユ | 40 | K41 | K41 | ネットワーク | 1508 | # | 0231 | うたを | 60 | K41 | K41 | ネットワーク | 1508 | # | 2034 | 別所さん | 40 | K55 | K55 | データベース| 0650 | # 社員('0650','鈴木一郎','50','K55'). 社員('1508','浜崎アユ','40','K41'). 社員('0231','うたを','60','K41'). 社員('2034','別所さん','40','K55'). 所属('K55','データベース','0650'). 所属('K41','ネットワーク','1508'). 'リレーション社員と部門の属性所属と部門番号上の大なり結合演算'(_社員番号,_社員名,_給与,_所属,_部門番号,_部門名,_部門長) :- 社員(_社員番号,_社員名,_給与,_所属), 所属(_部門番号,_部門名,_部門長), _所属 @> _部門番号. % 以下のサイトは http://toro.2ch.net/test/read.cgi/tech/1337692704/70 # 【 課題 】DB上に給与の支給テーブルがあります。 #       支店・部・課・社員番号・基本給・役職手当・残業時間 #       これらの情報をDBから読み込み、各支店ごとの部、課の合計、支店合計 #       総合計を求めなさい。最後に全ての合計を印字する事。 #       集計項目は基本給・役職手当・残業手当・総支給額の4項目とする。 # 【 形態 】1. Javaアプリケーション(main()で開始すること) # 【期限】6/17 午後20時 # 【Ver 】java version "1.7.0_02" # 【 補足 】 # 残業手当 =(基本給+役職手当)/160*1.2 # 総支給額 = 基本給+役職手当+残業手当 で計算します。 # # データベースの設定ですが # 支店varcher2(14)部varcher2(14)課varcher2(14)社員番号number(8)基本給number(20)役職手当number(20) # 残業時間number(20) # 一意キーは社員番号です # # 追試の追試課題です。 # 今晩がんばりますが、明日の21時にはメールで提出しないといけません。 # お力添えお願いします。 # 'DB上に給与の支給テーブルがあります。支店・部・課・社員番号・基本給・役職手当・残業時間、これらの情報をDBから読み込み、各支店ごとの部、課の合計、支店合計、総合計を求めなさい。 最後に全ての合計を印字する事。集計項目は基本給・役職手当・残業手当・総支給額の4項目とする。' :- 鍵ならびを生成(_支店候補,_支店_部候補,_支店_部_課候補), 支店の表示(_支店候補,_支店_部候補,_支店_部_課候補,_支店), fail; 総合計の表示. 支店の表示(_支店候補,_支店_部候補,_支店_部_課候補,_支店) :- member([_支店,_部],_支店_部候補), '支店,部の表示'(_支店_部候補,_支店_部_課候補,_支店,_部), fail. 支店の表示(_支店候補,_支店_部候補,_支店_部_課候補,_支店) :- '支店を鍵に集約'(_支店候補,_支店,_基本給,_役職手当,_残業手当,_総支給額), writef('支店集約: 支店=%t: 基本給=%t,役職手当=%t,残業手当%t,総支給額=%t\n',[_支店,_基本給,_役職手当,_残業手当,_総支給額]). '支店,部の表示'(_支店_部候補,_支店_部_課候補,_支店,_部) :- member([_支店,_部,_課],_支店_部_課候補), '支店,部,課の表示'(_支店_部_課候補,_支店,_部,_課), fail. '支店,部の表示'(_支店_部_課候補,_支店,_部) :- '支店,部を鍵に集約'(_支店_部候補,_支店,_部,_基本給,_役職手当,_残業手当,_総支給額), writef('支店・部集約: 支店=%t,部=%t: 基本給=%t,役職手当=%t,残業手当%t,総支給額=%t\n',[_支店,_部,_基本給,_役職手当,_残業手当,_総支給額]). '支店,部,課の表示'(_支店_部_課候補,_支店,_部,_課) :- '支店,部,課を鍵に集約'(_支店_部_課候補,_支店,_部,_課,_基本給,_役職手当,_残業手当,_総支給額), writef('支店・部・課集約: 支店=%t,部=%t,課=%t: 基本給=%t,役職手当=%t,残業手当%t,総支給額=%t\n',[_支店,_部,_課,_基本給,_役職手当,_残業手当,_総支給額]). 鍵ならびを生成(_支店候補,_支店_部候補,_支店_部_課候補) :- '支店を鍵'(_支店候補), '支店,部を鍵'(_支店_部候補), '支店,部,課を鍵'(_支店_部_課候補). '支店を鍵'(_支店候補) :- findsetof([_支店],( 給与(_支店,_,_,_社員番号,_基本給,_役職手当)), _支店候補). '支店,部を鍵'(_支店_部候補) :- findsetof([_支店,_部],( 給与(_支店,_部,_課,_社員番号,_基本給,_役職手当)), _支店_部候補). '支店,部,課を鍵'(_支店_部_課候補) :- findsetof([_支店,_部,_課],( 給与(_支店,_部,_課,_社員番号,_基本給,_役職手当)), _支店_部候補). '支店,部,課を鍵に集約'(_支店_部_課候補,_支店,_部,_課,_基本給,_役職手当,_残業手当,_総支給額) :- member([_支店,_部,_課],_支店_部_課候補), findsum([_基本給,_役職手当,_残業手当,_総支給額],( 給与(_支店,_部,_課,_社員番号,_基本給,_役職手当), _残業手当と総支給額の算出(_基本給,_役職手当,残業手当,_総支給額)), [_基本給,_役職手当,_残業手当,_総支給額]). '支店,部を鍵に集約'(_支店_部候補,_支店,_部,_基本給,_役職手当,_残業手当,_総支給額) :- member([_支店,_部],_支店_部候補), findsum([_基本給,_役職手当,_残業手当,_総支給額],( 給与(_支店,_部,_,_社員番号,_基本給,_役職手当), _残業手当と総支給額の算出(_基本給,_役職手当,残業手当,_総支給額)), [_基本給,_役職手当,_残業手当,_総支給額]). '支店を鍵に集約'(_支店候補,_支店,_基本給,_役職手当,_残業手当,_総支給額) :- member([_支店],_支店候補), findsum([_基本給,_役職手当,_残業手当,_総支給額],( 給与(_支店,_,_,_社員番号,_基本給,_役職手当), _残業手当と総支給額の算出(_基本給+_役職手当,残業手当,_総支給額)), [_基本給,_役職手当,_残業手当,_総支給額]). すべての合計(_基本給,_役職手当,_残業手当,_総支給額) :- findsum([_基本給,_役職手当,_残業手当,_総支給額],( 給与(_,_,_,_社員番号,_基本給,_役職手当), _残業手当と総支給額の算出(_基本給+_役職手当,残業手当,_総支給額)), [_基本給,_役職手当,_残業手当,_総支給額]). 残業手当と総支給額の算出(_基本給,_役職手当,_残業手当,_総支給額) :- 残業手当の算出(_基本給,_役職手当,_残業手当), 総支給額の算出(_基本給,_役職手当,_残業手当,_総支給額). 残業手当の算出(_基本給,_役職手当,_残業手当) :- _残業手当 is (_基本給+_役職手当)/160*1.2. 総支給額の算出(_基本給,_役職手当,_残業手当,_総支給額) :- _総支給額 is _基本給+_役職手当+_残業手当.