過去の桐井戸端BBS (桐ver.7)
910 各月の最終日が月末以外でも最終行を抽出したい HERB 1998/12/26-11:53
以前の勤め先でV5で営業日報(売上)を下記条件選択で計算していました。
#条件選択(#直前値([日]=1,[売上],1,#直前値([売上累計],0)+[売上])
基本的に年中無休でしたのでこの計算式が成り立ちました。

現在の勤め先は定休日の関係で必ずしも1日が営業日ではありません。
ちなみにハーブ関連商品を店頭、通信販売しております。
通信販売はパッケージソフトを購入、SQLサーバーを使用しています。
ODBC経由で桐に取り込んでいます。
店頭売上分についてはいまだに手書きの世界で手計算で日々の計算をしています。
レジ清算後売上データのレシートを発行します。
キー入力でも日々の売上データをデータベース化したいと思っています。
V7.1を購入し、フォーム作成に毎日悩んでいます。

流れとしては、開店前の各金種の枚数、閉店後の各金種の枚数、売上データの入力
フォーム上で開閉店後の各金種別に金額をかけて合計を出します。
開店前金額+売上データ=閉店後合計金額とします。
出来るだけデータ量を押さえたいのでテーブルには開閉店分の金種枚数のみ、合計
金額項目も省いています。

なお、レジの売上から売上データ(精算レシート)以外の入金、出金もありますの
で、サンプルにあった家計簿のフォームで出納管理をしようと思っています。
日毎の入出金収支金額を計算します。
メインフォームで売り上げデータの管理、サブフォームで日々の入出金を管理しま
す。

前置きが長くなりましたがいくつか質問をさせていただきます。

1、サブフォームで日毎の入金合計、出金合計を表示、入金合計−出金合計で日々
の収支を計算表示できますが、以前K3に問い合わせしたところサブフォームの
データをメインフォームに反映させることは出来ないとの回答でした。
いったんサブフォームのテーブルを行集計し集計行のみ選択メインフォームのテー
ブルで併合を行うとの返事でした。
この方法以外にも何か良い方法がありましたら教えて下さい。

2、定休日の関係から必ずしも月末が営業日ではありません、たしか月末を指定で
きる関数があったような記憶があるのですが、各月の最終日が月末以外でも最終行
を抽出できますか。
各月ごとの売上累計は行集計を行えばよいとは思いますが、条件選択で各月の最終
行には累計データがありますので利用したいと思います。

質問内容がうまく説明できなく解りずらく申し訳ありませんがよろしくお願いします。
911 Re: グッチデザイア 1998/12/26-12:37
記事番号910へのコメント
>2、定休日の関係から必ずしも月末が営業日ではありません、たしか月末を指定で
>きる関数があったような記憶があるのですが、各月の最終日が月末以外でも最終行
>を抽出できますか。
>各月ごとの売上累計は行集計を行えばよいとは思いますが、条件選択で各月の最終
>行には累計データがありますので利用したいと思います。

 月間の最終レコードの抽出が目的であるならば、おっしゃるとおり#月末という関数がありますが、
日付順に並べておいて、月により選択した上で、コマンドで

位置指定 行番号=最終(orB)

でご趣旨のレコードに移動できます。

で、

選択 行数=1

で当該レコードのみを抽出できるはずですがいかがでしょうか? Ver.7では「絞込み」というコマンドに変わっているそうですが・・・。

>1、サブフォームで日毎の入金合計、出金合計を表示、入金合計−出金合計で日々
>の収支を計算表示できますが、以前K3に問い合わせしたところサブフォームの
>データをメインフォームに反映させることは出来ないとの回答でした。
>いったんサブフォームのテーブルを行集計し集計行のみ選択メインフォームのテー
>ブルで併合を行うとの返事でした。
>この方法以外にも何か良い方法がありましたら教えて下さい。

 こちらもVer.5の世界に住む私にはちょっとつらいんですが、K3さんのいわれるとおりでしょうか?
 ただ、どっちがいいかですが、行集計しなくても「加算・減算」を使えばいいはずです。

 後は「有識者」のみなさま、フォローよろしく!
912 Re: グッチデザイア 1998/12/26-13:08
記事番号911へのコメント
2に関して、もっと簡単な手がありました。

 年月日項目とは別に「月」という項目を作り、年月日を逆順でソートした上で、

選択 単一化={[月]}

 これで月ごとの最初のレコードだけに絞ってくれますが、どうでしょうか?
927 Re: HERB 1998/12/27-11:16
記事番号912へのコメント
早速の回答ありがとうございます。

年月日は個々に項目を作っています、編集初期値で&年、&月、&日としています。
年、月、日データ型は整数です、重複行を避けるため処理日付項目([年]×10000+[月]×100+[日])
8桁の数値データを作りました。
日付順のソートも処理日付で行うつもりです。

ただ、このようなデータの取り方が正しいのかは解りません、以前はこのやり方で営業日報を作成したので
同じ方式にしたまでです。
データベース化するとき誰しも考えることだと思うのですが、どう入力しどう結果を導き出すかによって
テーブルの作成が大きく変わるのでは。

今はまだデータの入力数が少なく二月にまたがっていませんので、これから試行錯誤で考えていきます。

また、何か良いアドバイスがありましたらよろしくお願いします。
934 データの持ち方 佐田 守弘 1998/12/28-11:44
記事番号910へのコメント
 売上データを年、月、日に分けて持っておられる様ですが、
桐ver.7では日時型の項目で持たれるのが宜しいかと思います。
レジの場合、売上時刻も一緒に入っているでしょうから、日付時刻を一緒にして扱えます。
もし日単位で集計する時には、#日時日付関数で日付だけを取り出せば良いでしょう。

日毎の集計だけでしたら、レポートの集計機能だけでできるはずです。
もし、途中までの累計(明細行の累計)を求める必要があるなら、#累計関数ないしは、#直前値関数などが使えます。
例えば、
[日付時刻]:日時型 挿入初期値に#日時値を設定
[売上日] :#日時日付([日付時刻]) 日付のみのデータになる
[合計額] :[金額]+#条件選択(#直前値([売上日])=[売上日],直前値([合計額]),1,0)
意味は、日付が直前行と同じなら、金額に直前行の合計額を加え、同じでなかったら、金額に0を加える計算式です。
(式の確認はしておりません)

戻る