(57)【要約】【課題】元データの集計を効率的に行うことを可能とする情報処理プログラム、情報処理装置及び情報処理方法を提供する。【解決手段】集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、集計の対象となる集計済データを特定し、特定した集計済データに、集計の指示を受け付ける前のあるタイミングにおけるデータと、集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、第１の集計済データが存在すると判定した場合、第１の集計済データの再集計を行い、再集計した第１の集計済データと、特定した集計済データのうちの第１の集計済データ以外の集計済データとに基づいて、集計の指示に対応する集計結果を算出して出力する。【選択図】図４
2020004013.tif 000002
【特許請求の範囲】
【請求項１】
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定し、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行い、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項２】
請求項１において、
前記判定する処理では、
特定した前記集計済データ毎に、前記集計の指示を受け付ける前のあるタイミングにおけるデータから算出されたハッシュ値と、前記集計の指示を受け付けたタイミングにおけるデータから算出されたハッシュ値とが異なるか否かを判定し、
前記ハッシュ値が異なると判定した前記集計済データを、前記第１の集計済データとして特定する、
ことを特徴とする情報処理プログラム。
【請求項３】
請求項１において、
前記複数の期間は、異なる長さの期間を含む、
ことを特徴とする情報処理プログラム。
【請求項４】
請求項１において、さらに、
前記集計の対象となる集計済データに、未集計である第２の集計済データが含まれている場合、前記集計結果を算出する前に、前記第２の集計済データの集計を行う、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項５】
請求項１において、
前記判定する処理では、特定した前記集計済データのうち、前記異なるデータが含まれる可能性がある集計済データについて、前記第１の集計済データが存在するか否かの判定を行う、
ことを特徴とする情報処理プログラム。
【請求項６】
請求項１において、
前記記憶部に記憶した集計済データは、前記複数の期間毎であって所定の集計単位毎の集計済データであり、さらに、
前記第１の集計済データが存在すると判定した場合、前記記憶部に記憶した前記所定の集計単位毎の他の集計済データから、前記集計の対象となる他の集計済データを特定し、
特定した前記他の集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータを含む第３の集計済データが存在するか否かを判定し、
前記第３の集計済データが存在すると判定した場合、前記第３の集計済データの再集計を行い、
再集計した前記第３の集計済データと、特定した前記他の集計済データのうちの前記第３の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する他の集計結果を算出して出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項７】
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定するデータ特定部と、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定するデータ判定部と、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行うデータ集計部と、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する結果出力部と、を有する、
ことを特徴とする情報処理装置。
【請求項８】
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定し、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行い、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
例えば、利用者にサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、サービスの提供を行うための情報処理システムを構築して稼働させる。具体的に、事業者は、例えば、商品の売上データ等（以下、元データとも呼ぶ）を利用者が指示した集計単位によって集計する情報処理システムを構築する。
【０００３】
このような情報処理システムでは、例えば、ある日に発生した元データの集計を、他の処理が行われていない時間帯（例えば、集計対象の元データが発生した日の夜間）にバッチ処理として行う。これにより、情報処理システムは、元データの集計が他の処理に影響を与えることを防止することが可能になる（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５９−１１７６６５号公報
【特許文献２】特開平２−１７８７６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、上記のような元データには、過去に発生した元データに対する修正データ（以下、単に修正データとも呼ぶ）が含まれている場合がある。この場合、情報処理システムでは、その日に発生した元データの集計だけでなく、過去に発生した元データの再集計についても行う必要がある。
【０００６】
しかしながら、情報処理システムでは、例えば、元データに修正データが含まれているか否かの判定を、元データの集計前に行うことができない場合がある。そのため、情報処理システムでは、例えば、修正データが発生する可能性がある全ての日について元データの再集計を行う必要が生じ、元データの集計に要する時間が長くなる場合がある。
【０００７】
そこで、一つの側面では、本発明は、元データの集計を効率的に行うことを可能とする情報処理プログラム、情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一態様では、集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定し、特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行い、再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する、処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの側面によれば、元データの集計を効率的に行うことを可能とする。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理システム１０の構成を示す図である。
【図２】図２は、情報処理装置１のハードウエア構成を説明する図である。
【図３】図３は、情報処理装置１の機能のブロック図である。
【図４】図４は、第１の実施の形態における結果出力処理の概略を説明するフローチャート図である。
【図５】図５は、第１の実施の形態における結果出力処理の概略を説明する図である。
【図６】図６は、第１の実施の形態における結果出力処理の概略を説明する図である。
【図７】図７は、第１の実施の形態における結果出力処理の概略を説明する図である。
【図８】図８は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。
【図９】図９は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。
【図１３】図１３は、集計前データ１３１の具体例について説明する図である。
【図１４】図１４は、第１の実施の形態における結果出力処理の詳細を説明する図である。
【図１５】図１５は、集計済データ１３２の具体例を説明する図である。
【図１６】図１６は、第１の実施の形態における結果出力処理の詳細を説明する図である。
【図１７】図１７は、第１の実施の形態における結果出力処理の詳細を説明する図である。
【図１８】図１８は、第１の実施の形態における結果出力処理の詳細を説明する図である。
【図１９】図１９は、第２の実施の形態における結果出力処理を説明するフローチャート図である。
【図２０】図２０は、第２の実施の形態における結果出力処理を説明するフローチャート図である。
【図２１】図２１は、集計単位情報１３３の具体例について説明する図である。
【図２２】図２２は、第２の実施の形態における結果出力処理を説明する図である。
【図２３】図２３は、第２の実施の形態における結果出力処理を説明する図である。
【図２４】図２４は、第２の実施の形態における結果出力処理を説明する図である。
【図２５】図２５は、第２の実施の形態における結果出力処理を説明する図である。
【図２６】図２６は、第２の実施の形態における結果出力処理を説明する図である。
【図２７】図２７は、第２の実施の形態における結果出力処理を説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は、情報処理システム１０の構成を示す図である。具体的に、図１に示す情報処理システム１０は、情報処理装置１と、情報格納領域１３０と、操作端末３ａ、３ｂ及び３ｃとを有する。以下、操作端末３ａ、３ｂ及び３ｃを総称して操作端末３とも呼ぶ。また、情報格納領域１３０は、情報処理装置１内に位置しているものであってもよく、情報処理装置１の外部に位置する記憶装置（図示しない）内に位置しているものであってもよい。
【００１２】
操作端末３は、例えば、サービスの提供を受ける利用者が使用するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であり、商品の販売等を行う各店舗に配置された端末である。そして、操作端末３では、例えば、各店舗の担当者（以下、単に担当者とも呼ぶ）によって、各店舗における売上データ等（以下、集計前データ１３１とも呼ぶ）の入力が行われる。その後、操作端末３は、入力された集計前データ１３１を情報処理装置１に送信する。以下、集計前データ１３１は、店舗毎（商品の販売が行われた店舗毎）、商品毎（販売された商品の種類毎）及び時間毎（商品の販売が行われた時間毎）の売上データであり、前日または２日前の集計前データ１３１に対する修正データを含んでいる可能性があるデータであるものとして説明を行う。
【００１３】
情報処理装置１は、例えば、１台以上の物理マシンまたは仮想マシンであり、各操作端末３から送信された集計前データ１３１を集計することによって集計済データ１３２を生成する。そして、情報処理装置１は、例えば、生成した集計済データ１３２を出力端末（図示しない）に出力する。
【００１４】
また、情報処理装置１は、各操作端末３から送信された集計前データ１３１に修正データが含まれていると判定した場合、その修正データに対応する集計済データ１３２（過去に生成された集計済データ１３２）の再集計を行う。
【００１５】
ここで、情報処理装置１では、各操作端末３から送信された集計前データ１３１に修正データが含まれているか否かの判定を、集計済データ１３２の生成が開始される前に行うことができない場合がある。そのため、情報処理装置１では、例えば、修正データが発生する可能性がある全ての日についての集計済データ１３２の再集計を行う必要が生じ、集計済データ１３２の生成に要する時間が長くなる場合がある。
【００１６】
そこで、本実施の形態における情報処理装置１は、集計前データ１３１の集計の指示を受け付けた際に、生成済の集計済データ１３２から、指示を受け付けた集計の対象となる集計済データ１３２を特定する。そして、情報処理装置１は、特定した集計済データ１３２に、集計の指示を受け付ける前のあるタイミングにおけるデータと、集計の指示を受け付けたタイミングにおけるデータとが異なる集計前データ１３１から生成された集計済データ１３２（以下、第１の集計済データ１３２とも呼ぶ）が存在するか否かを判定する。
【００１７】
その結果、第１の集計済データ１３２が存在すると判定した場合、情報処理装置１は、第１の集計済データ１３２の再集計を行う。そして、情報処理装置１は、再集計を行った第１の集計済データ１３２と、特定した集計済データ１３２のうちの第１の集計済データ１３２以外の集計済データ１３２とに基づいて、集計の指示に対応する集計結果を算出して出力する。
【００１８】
すなわち、情報処理装置１は、集計の指示を受けたタイミングと、それよりも前のタイミングとの間において異なっている集計前データ１３１から生成された集計済データ１３２を、修正データの発生に伴って再集計を行う必要が生じている集計済データ１３２として特定する。そして、情報処理装置１は、特定した集計済データ１３２についてのみ再集計を行う。
【００１９】
これにより、情報処理装置１は、集計済データ１３２の生成を効率的に行うことが可能になる。そのため、情報処理装置１は、集計済データ１３２の生成に要する時間を短縮させることが可能になり、集計済データ１３２の生成が他の処理に影響を及ぼすことを防止することが可能になる。
【００２０】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図２は、情報処理装置１のハードウエア構成を説明する図である。
【００２１】
情報処理装置１は、図２に示すように、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２２】
記憶媒体１０４は、例えば、集計済データ１３２の集計結果を算出して出力する処理（以下、結果出力処理とも呼ぶ）を行うためのプログラム１１０を記憶するプログラム格納領域（図示しない）を有する。また、記憶媒体１０４は、例えば、結果出力処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。なお、記憶媒体１０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）であってよい。
【００２３】
ＣＰＵ１０１は、記憶媒体１０４からメモリ１０２にロードされたプログラム１１０を実行して結果出力処理を行う。
【００２４】
また、外部インターフェース１０３は、例えば、操作端末３と通信を行う。
【００２５】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明を行う。図３は、情報処理装置１の機能のブロック図である。
【００２６】
情報処理装置１は、図３に示すように、ＣＰＵ１０１やメモリ１０２等のハードウエアとプログラム１１０とが有機的に協働することにより、データ受付部１１１と、データ集計部１１２と、指示受付部１１３と、データ特定部１１４と、データ判定部１１５と、結果出力部１１６とを含む各種機能を実現する。
【００２７】
そして、情報処理装置１は、図３に示すように、集計前データ１３１と、集計済データ１３２と、集計単位情報１３３と、再集計情報１３４とを情報格納領域１３０に記憶する。
【００２８】
データ受付部１１１は、操作端末３から送信された集計前データ１３１を受け付ける。そして、データ受付部１１１は、例えば、受け付けた集計前データ１３１を情報格納領域１３０に記憶する。
【００２９】
データ集計部１１２は、データ受付部１１１が受け付けた集計前データ１３１を集計することによって、集計済データ１３２を生成する。
【００３０】
具体的に、データ集計部１１２は、例えば、集計前データ１３１のそれぞれに含まれる属性情報（以下、属性ＩＤとも呼ぶ）を参照し、集計前データ１３１のそれぞれが発生した日時を特定する。そして、データ集計部１１２は、例えば、特定の期間毎（例えば、１時間毎）の集計前データ１３１をそれぞれ集計することによって特定の期間毎の集計済データ１３２を生成し、情報格納領域１３０に記憶する。
【００３１】
なお、データ集計部１１２は、例えば、属性情報と日時等の各情報とを対応付けた対応情報（図示しない）を参照することによって、集計前データ１３１のそれぞれが発生した日時の特定を行うものであってよい。
【００３２】
指示受付部１１３は、例えば、情報格納領域１３０に記憶された集計済データ１３２のそれぞれを、事業者によって定められた集計単位によってさらに集計する旨の指示を受け付ける。具体的に、指示受付部１１３は、事業者が情報処理装置１に対して行った集計の指示を受け付ける。
【００３３】
データ特定部１１４は、指示受付部１１３が集計の指示を受け付けたことに応じて、情報格納領域１３０に記憶された集計済データ１３２から、指示受付部１１３が指定を受け付けた集計の対象となる集計済データ１３２を特定する。
【００３４】
データ判定部１１５は、データ特定部１１４が特定した集計済データ１３２に、指示受付部１１３が受け付けた集計の指示を受け付ける前のあるタイミングにおけるデータと、指示受付部１１３が受け付けた集計の指示を受け付けたタイミングにおけるデータとが異なる集計前データ１３１から生成された第１の集計済データ１３２が存在するか否かを判定する。そして、データ判定部１１５によって第１の集計済データ１３２が存在すると判定した場合、データ集計部１１２は、存在すると判定した第１の集計済データ１３２の再集計を行う。
【００３５】
結果出力部１１６は、データ集計部１１２が再集計を行った第１の集計済データ１３２と、データ特定部１１４が特定した集計済データ１３２のうちの第１の集計済データ１３２以外の集計済データ１３２とに基づいて、指示受付部１１３が受け付けた集計の指示に対応する集計結果を算出する。そして、結果出力部１１６は、算出した集計結果を事業者端末（図示しない）に出力する。集計単位情報１３３及び再集計情報１３４の具体例については後述する。
【００３６】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図４は、第１の実施の形態における結果出力処理の概略を説明するフローチャート図である。また、図５から図７は、第１の実施の形態における結果出力処理の概略を説明する図である。
【００３７】
情報処理装置１の指示受付部１１３は、図４に示すように、集計済データ１３２の集計の指示を受け付けるまで待機する（Ｓ１のＮＯ）。具体的に、指示受付部１１３は、例えば、事業者が事業者端末（図示しない）を介して情報処理装置１に集計済データ１３２の集計の指示を入力するまで待機する。
【００３８】
そして、集計済データ１３２の集計の指示を受け付けた場合（Ｓ１のＹＥＳ）、情報処理装置１のデータ特定部１１４は、情報格納領域１３０に記憶した複数の期間毎の集計済データ１３２から、Ｓ１の処理で受け付けた指示に対応する集計の対象となる集計済データ１３２を特定する（Ｓ２）。
【００３９】
続いて、情報処理装置１のデータ判定部１１５は、Ｓ２の処理で特定した集計済データ１３２に、Ｓ１の処理で受け付けた集計の指示を受け付ける前のタイミングにおけるデータと、Ｓ１の処理で受け付けた集計の指示を受け付けたタイミングにおけるデータとが異なる集計前データ１３１から生成された第１の集計済データ１３２が存在するか否かを判定する（Ｓ３）。
【００４０】
その結果、第１の集計済データ１３２が存在すると判定した場合（Ｓ４のＹＥＳ）、情報処理装置１のデータ集計部１１２は、Ｓ３の処理で存在すると判定した第１の集計済データ１３２の再集計を行う（Ｓ５）。具体的に、データ判定部１１５は、第１の集計済データ１３２が存在すると判定した場合、データ集計部１１２に対して第１の集計済データ１３２の再集計を指示する。
【００４１】
一方、第１の集計済データ１３２が存在しないと判定した場合（Ｓ４のＮＯ）、データ集計部１１２は、Ｓ４の処理を行わない。
【００４２】
その後、結果出力部１１６は、Ｓ５の処理で再集計を行った第１の集計済データ１３２と、Ｓ２の処理で特定した集計済データ１３２のうちの第１の集計済データ１３２以外の集計済データ１３２とに基づいて、Ｓ１の処理で受け付けた集計の指示に対応する集計結果を算出して出力する（Ｓ６）。以下、Ｓ３からＳ６の処理の具体例について説明を行う。
【００４３】
［Ｓ３からＳ６の処理の具体例］
図５から図７は、集計済データ１３２の具体例について説明する図である。以下、集計済データ１３２は、１時間毎の各時間帯に発生した集計前データ１３１からそれぞれ生成されるものとして説明を行う。また、Ｓ１の処理における集計の指示は、毎日決められた時間に行われるものとして説明を行う。
【００４４】
初めに、１０月２９日に発生した集計前データ１３１から生成される集計済データ１３２の具体例について説明を行う。図５は、１０月２９日に発生した集計前データ１３１から生成される集計済データ１３２（以下、１０月２９日の集計済データ１３２とも呼ぶ）の具体例について説明する図である。
【００４５】
図５に示すように、１０月２９日の集計済データ１３２には、１０月２９日の１時台に発生した集計前データ１３１から生成された集計済データ１３２から、１０月２９日の２４時台に発生した集計前データ１３１から生成された集計済データ１３２までの２４個の集計済データ１３２が含まれている。
【００４６】
次に、１０月３０日に発生した集計前データ１３１から生成される集計済データ１３２の具体例について説明を行う。図６は、１０月３０日に発生した集計前データ１３１から生成される集計済データ１３２（以下、１０月３０日の集計済データ１３２とも呼ぶ）の具体例について説明する図である。
【００４７】
図６に示すように、１０月３０日の集計済データ１３２には、１０月３０日の１時台に発生した集計前データ１３１から生成された集計済データ１３２から、１０月３０日の２４時台に発生した集計前データ１３１から生成された集計済データ１３２までの２４個の集計済データ１３２が含まれている。
【００４８】
ここで、例えば、１０月３０日の各集計済データ１３２の生成後に、１０月２９日の集計済データ１３２及び１０月３０日の集計済データ１３２に基づく集計の指示を受け付けた場合（Ｓ１のＹＥＳ）、データ判定部１１５は、１０月３０日に発生した集計前データ１３１に、１０月２９日に発生した集計前データ１３１に対する修正データが存在していたか否かを判定する（Ｓ３）。
【００４９】
すなわち、情報処理装置１のデータ集計部１１２は、１０月３０日に発生した集計前データ１３１から集計済データ１３２を生成する際に、１０月２９日に発生した集計前データ１３１に対する修正データが１０月３０日に発生した集計前データ１３１に含まれていることを検知した場合、例えば、その旨をデータ判定部１１５等に通知することなく、検知した修正データを１０月２９日に発生した集計前データ１３１に追加する処理を行う。
【００５０】
そのため、データ判定部１１５は、１０月２９日の集計済データ１３２及び１０月３０日の集計済データ１３２に基づく集計の指示を受け付けた場合、例えば、１０月２９日の各時間に発生した集計前データ１３１毎に、各集計前データ１３１から算出されるハッシュ値が１０月３０日の集計済データ１３２の生成前後において変わっているか否かの判定を行う。
【００５１】
これにより、データ判定部１１５は、１０月２９日に発生した集計前データ１３１に対する修正データの追加が、データ集計部１１２によって行われているか否かの判定を行うことが可能になる。
【００５２】
その結果、例えば、１０月２９日の２時台に発生した集計前データ１３１から算出されたハッシュ値が変わっていると判定した場合（Ｓ４のＹＥＳ）、データ集計部１１２は、１０月２９日の２時台に発生した集計済データ１３２に対して修正データが追加されていると判定し、図６に示すように、１０月２９日の２時台の集計済データ１３２を再集計する（Ｓ５）。
【００５３】
そして、結果出力部１１６は、この場合、１０月２９日の集計済データ１３２（再集計を行った２時台の集計済データ１３２を含む）と、１０月３０日の集計済データ１３２とから、集計結果を算出して出力する（Ｓ６）。
【００５４】
次に、１０月３１日に発生した集計前データ１３１から生成される集計済データ１３２の具体例について説明を行う。図７は、１０月３１日に発生した集計前データ１３１から生成される集計済データ１３２（以下、１０月３１日の集計済データ１３２とも呼ぶ）の具体例について説明する図である。
【００５５】
図７に示すように、１０月３１日の集計済データ１３２には、１０月３１日の１時台に発生した集計前データ１３１から生成された集計済データ１３２から、１０月３１日の２４時台に発生した集計前データ１３１から生成された集計済データ１３２までの２４個の集計済データ１３２が含まれている。
【００５６】
ここで、例えば、１０月３１日の各集計済データ１３２の生成後に、１０月２９日の集計済データ１３２から１０月３１日の集計済データ１３２に基づく集計の指示を受け付けた場合（Ｓ１のＹＥＳ）、データ判定部１１５は、１０月３１日に発生した集計前データ１３１に、１０月２９日及び１０月３０日に発生した集計前データ１３１に対する修正データが存在していたか否かを判定する（Ｓ３）。
【００５７】
すなわち、データ集計部１１２は、１０月３１日に発生した集計前データ１３１から集計済データ１３２を生成する際に、１０月２９日または１０月３０日に発生した集計済データ１３２に対する修正データが１０月３１日に発生した集計前データ１３１に含まれていることを検知した場合、例えば、その旨をデータ判定部１１５等に通知することなく、検知した修正データを１０月２９日または１０月３０日に発生した集計前データ１３１に追加する処理を行う。
【００５８】
そのため、データ判定部１１５は、１０月２９日の集計済データ１３２から１０月３１日の集計済データ１３２に基づく集計の指示を受け付けた場合、例えば、１０月２９日及び１０月３０日の各時間に発生した集計前データ１３１毎に、各集計前データ１３１から算出されるハッシュ値が１０月３１日の集計済データ１３２の生成前後において変わっているか否かの判定を行う。
【００５９】
これにより、データ判定部１１５は、１０月２９日及び１０月３０日に発生した集計前データ１３１に対する修正データの追加が、データ集計部１１２によって行われているか否かの判定を行うことが可能になる。
【００６０】
その結果、例えば、１０月２９日の１時台に発生した集計前データ１３１から算出されたハッシュ値が変わっていると判定した場合（Ｓ４のＹＥＳ）、データ集計部１１２は、１０月２９日の１時台に発生した集計済データ１３２に対して修正データが追加されていると判定し、図７に示すように、１０月２９日の１時台の集計済データ１３２を再集計する（Ｓ５）。
【００６１】
そして、結果出力部１１６は、この場合、１０月２９日の集計済データ１３２（再集計を行った１時台の集計済データ１３２を含む）と、１０月３０日の集計済データ１３２と、１０月３１日の集計済データ１３２とから、集計結果を算出して出力する（Ｓ６）。
【００６２】
すなわち、情報処理装置１は、集計の指示を受けたタイミングと、それよりも前のタイミングとの間において異なっている集計前データ１３１から生成された集計済データ１３２を、修正データの発生に伴って再集計を行う必要が生じている集計済データ１３２として特定する。そして、情報処理装置１は、特定した集計済データ１３２についてのみ再集計を行う。
【００６３】
これにより、情報処理装置１は、集計済データ１３２の生成を効率的に行うことが可能になる。そのため、情報処理装置１は、集計済データ１３２の生成に要する時間を短縮させることが可能になり、集計済データ１３２の生成が他の処理に影響を及ぼすことを防止することが可能になる。
【００６４】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図８から図１２は、第１の実施の形態における結果出力処理の詳細を説明するフローチャート図である。また、図１３から図１８は、第１の実施の形態における結果出力処理の詳細を説明する図である。
【００６５】
［集計前データ受付処理］
初めに、結果出力処理のうち、集計前データ１３１を受け付けたことに応じて行われる処理（以下、集計前データ受付処理とも呼ぶ）について説明を行う。図８は、集計前データ受付処理について説明するフローチャート図である。
【００６６】
データ受付部１１１は、図８に示すように、例えば、各操作端末３から送信された集計前データ１３１を受け付けるまで待機する（Ｓ１１のＮＯ）。以下、各操作端末３による集計前データ１３１の送信が１時間毎に行われるものとして説明を行う。
【００６７】
なお、各操作端末３は、集計前データ１３１の送信を不定期で行うものであってもよい。具体的に、各操作端末３は、例えば、所定のデータ量からなる集計前データ１３１が生成されたことに応じて、情報処理装置１に対して集計前データ１３１の送信を行うものであってもよい。以下、集計前データ１３１の具体例について説明を行う。
【００６８】
［集計前データの具体例］
図１３は、集計前データ１３１の具体例について説明する図である。具体的に、図１３は、１０月２９日に発生した集計前データ１３１の具体例について説明する図である。
【００６９】
図１３に示す集計前データ１３１は、各店舗を識別する「店舗ＩＤ」と、各商品を識別する「商品ＩＤ」と、発生した売上の売上金額が設定される「売上金額」と、発生した売上の属性を識別する「属性ＩＤ」が設定される。
【００７０】
具体的に、図１３に示す集計前データ１３１のうちの１行目のデータには、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００４」が設定され、「売上金額」として「２２７（円）」が設定され、「属性ＩＤ」として「３２４６」が設定されている。すなわち、図１３に示す集計前データ１３１のうちの１行目のデータは、「店舗ＩＤ」が「ＴＰ００１」である店舗において「商品ＩＤ」が「ＳＨ００４」である商品が販売されたことに伴い、「２２７（円）」の売上が立ったことを示している。
【００７１】
また、図１３に示す集計前データ１３１のうちの２行目のデータには、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００２」が設定され、「売上金額」として「１５１（円）」が設定され、「属性ＩＤ」として「４５１２」が設定されている。すなわち、図１３に示す集計前データ１３１のうちの２行目のデータは、「店舗ＩＤ」が「ＴＰ００１」である店舗において「商品ＩＤ」が「ＳＨ００２」である商品が販売されたことに伴い、「１５１（円）」の売上が立ったことを示している。図１３に含まれる他のデータについての説明は省略する。
【００７２】
図８に戻り、各操作端末３から送信された集計前データ１３１を受け付けた場合（Ｓ１１のＹＥＳ）、データ集計部１１２は、情報格納領域１３０に記憶された対応情報（図示しない）を参照し、Ｓ１１の処理で受け付けた集計前データ１３１が発生した日時をそれぞれ特定する（Ｓ１２）。
【００７３】
具体的に、データ集計部１１２は、例えば、対応情報（図示しない）を参照することによって、図１４に示すように、Ｓ１１の処理で受け付けた集計前データ１３１のそれぞれに含まれる「属性ＩＤ」に設定された情報を、各集計前データ１３１が発生した日時を示す情報（「日付」及び「時間」に設定された情報）に変換する。
【００７４】
その後、データ集計部１１２は、Ｓ１２の処理で日時を特定した集計前データ１３１のそれぞれを情報格納領域１３０に記憶する（Ｓ１３）。
【００７５】
すなわち、集計前データ１３１には、図１３で説明したように、各集計前データ１３１が発生した日時を直接的に示す項目が含まれていない。そのため、データ特定部１１４やデータ判定部１１５等は、データ集計部１１２によって「属性ＩＤ」に設定された情報の変換が行われるまでの間、各集計前データ１３１が発生した日時を特定することができない。
【００７６】
そこで、データ集計部１１２は、データ受付部１１１が集計前データ１３１を受け付けた場合、各集計前データ１３１が発生した日時の特定を行う。そして、データ集計部１１２は、各集計前データ１３１を発生した日時毎に区分けした状態で情報格納領域１３０に記憶する。
【００７７】
これにより、情報処理装置１は、後述するように、修正データの追加に伴って再集計を行う必要が生じた集計済データ１３２を特定することが可能になる。
【００７８】
［再集計情報生成処理］
次に、結果出力処理のうち、再集計情報１３４の生成を行う処理（以下、再集計情報生成処理とも呼ぶ）について説明を行う。図９及び図１０は、再集計情報生成処理について説明するフローチャート図である。なお、再集計情報１３４は、修正データが発生したことに伴って再集計する必要が生じた集計済データ１３２を示す情報である。
【００７９】
情報処理装置１の指示受付部１１３は、図９に示すように、情報生成タイミングになるまで待機する（Ｓ２１のＮＯ）。情報生成タイミングは、例えば、事業者によって予め定められたタイミングであってよい。以下、情報生成タイミングが午前２時であるものとして説明を行う。なお、情報生成タイミングは、例えば、事業者が情報処理装置１に対して情報生成指示を入力したタイミングであってもよい。
【００８０】
そして、情報生成タイミングになった場合（Ｓ２１のＹＥＳ）、データ特定部１１４は、情報格納領域１３０に記憶した集計済データ１３２から、修正データの追加によって再集計を行う必要が生じている可能性がある集計済データ１３２を特定する（Ｓ２２）。集計済データ１３２の具体例については後述する。
【００８１】
具体的に、データ特定部１１４は、例えば、操作端末３から送信された集計前データ１３１に、前日または２日前の修正データが含まれている可能性がある場合、情報格納領域１３０に記憶された集計済データ１３２のうち、前日及び２日前に発生した集計前データ１３１から生成された集計済データ１３２の特定を行う。
【００８２】
続いて、データ特定部１１４は、Ｓ２２の処理で特定した集計済データ１３２毎に、各集計済データ１３２に対応する集計前データ１３１をそれぞれ特定する（Ｓ２３）。
【００８３】
そして、データ判定部１１５は、Ｓ２２の処理で特定した集計済データ１３２毎に、Ｓ２３の処理で特定した集計前データ１３１からハッシュ値の算出を行う（Ｓ２４）。
【００８４】
さらに、データ判定部１１５は、Ｓ２３の処理で特定した集計前データ１３１から前回算出されたハッシュ値が情報格納領域１３０に記憶されているか否かを判定する（Ｓ２５）。
【００８５】
その結果、Ｓ２３の処理で特定した集計前データ１３１から前回算出されたハッシュ値が情報格納領域１３０に記憶されていると判定した場合（Ｓ２６のＹＥＳ）、データ判定部１１５は、図１０に示すように、Ｓ２２の処理で特定した集計済データ１３２毎に、Ｓ２４の処理で算出したハッシュ値と、Ｓ２５の処理で記憶されていると判定したハッシュ値とが異なるか否かを判定する（Ｓ３１）。
【００８６】
すなわち、例えば、再集計情報生成処理が毎日行われている場合、情報格納領域１３０には、Ｓ２３の処理で特定した集計前データ１３１から前日に算出したハッシュ値が記憶されている（後述するＳ３５の処理）。そのため、データ判定部１１５は、この場合、Ｓ２４の処理で算出したハッシュ値と、前日に算出したハッシュ値との比較を行うことが可能になる。したがって、データ判定部１１５は、再集計情報生成処理が前日に行われてから現在までの間に、Ｓ２３の処理で特定した集計前データ１３１に修正データが追加されているか否かの判定を行うことが可能になる。
【００８７】
そして、異なるハッシュ値が存在すると判定した場合（Ｓ３２のＹＥＳ）、データ判定部１１５は、Ｓ３１の処理で存在すると判定したハッシュ値に対応する集計済データ１３２を示す情報を、情報格納領域１３０に記憶された再集計情報１３４に追加する（Ｓ３２）。
【００８８】
すなわち、データ判定部１１５は、この場合、情報格納領域１３０に記憶された集計済データ１３２に、修正データの発生に伴って再集計する必要が生じた集計済データ１３２が存在していると判定し、その集計済データ１３２を示す情報を再集計情報１３４に追加する。
【００８９】
これにより、情報処理装置１は、修正データの発生に伴って再集計する必要がある集計済データ１３２の範囲を必要最低限に抑制することが可能になる。
【００９０】
一方、異なるハッシュ値が存在しないと判定した場合（Ｓ３２のＮＯ）、データ判定部１１５は、Ｓ３３の処理を行わない。
【００９１】
その後、データ判定部１１５は、未集計の集計済データ１３２毎に、各集計済データ１３２の生成に用いられる集計前データ１３１からハッシュ値の算出を行う（Ｓ３４）。
【００９２】
そして、データ判定部１１５は、Ｓ２４の処理で算出したハッシュ値と、Ｓ３４の処理で算出したハッシュ値とを情報格納領域１３０に記憶する（Ｓ３５）。
【００９３】
すなわち、データ判定部１１５は、再集計情報生成処理が再度行われる際に使用されるハッシュ値を情報格納領域１３０に記憶する。
【００９４】
なお、データ判定部１１５は、Ｓ２４の処理で算出したハッシュ値が情報格納領域１３０に記憶されていないと判定した場合も同様に（Ｓ２６のＮＯ）、Ｓ３４以降の処理を行う。
【００９５】
［集計実行処理］
次に、結果出力処理のうち、集計済データ１３２の集計や再集計を行う処理（以下、集計実行処理とも呼ぶ）について説明を行う。図１１及び図１２は、集計実行処理について説明するフローチャート図である。
【００９６】
指示受付部１１３は、図１１に示すように、結果出力タイミングまで待機する（Ｓ４１のＮＯ）。結果出力タイミングは、例えば、事業者によって予め定められたタイミングであってよい。以下、結果出力タイミングが午前９時であるものとして説明を行う。なお、結果出力タイミングは、例えば、事業者が情報処理装置１に対して結果出力指示を入力したタイミングであってもよい。
【００９７】
そして、結果出力タイミングになった場合（Ｓ４１のＹＥＳ）、データ集計部１１２は、情報格納領域１３０に記憶された再集計情報１３４を参照し、集計済データ１３２を示す情報が含まれているか否かを判定する（Ｓ４２）。
【００９８】
その結果、集計済データ１３２を示す情報が含まれていると判定した場合（Ｓ４３のＹＥＳ）、データ集計部１１２は、Ｓ４２の処理で情報が含まれていると判定した集計済データ１３２を再集計する（Ｓ４４）。
【００９９】
すなわち、データ集計部１１２は、例えば、再集計情報生成処理の実行タイミングと異なるタイミングにおいて、修正データの発生に応じて再集計する必要が生じた集計済データ１３２の再集計を行う。これにより、情報処理装置１は、再集計情報生成処理が実行される時間帯における処理負荷の集中を防止することが可能になる。
【０１００】
一方、集計済データ１３２を示す情報が含まれていないと判定した場合（Ｓ４３のＮＯ）、データ集計部１１２は、Ｓ４４の処理を行わない。
【０１０１】
続いて、データ集計部１１２は、図１２に示すように、情報格納領域１３０に記憶された集計前データ１３１のうち、集計済データ１３２の生成が行われていない集計前データ１３１（未集計の集計前データ１３１）が存在するか否かを判定する（Ｓ５１）。
【０１０２】
その結果、集計済データ１３２の生成が行われていない集計前データ１３１が存在すると判定した場合（Ｓ５２のＹＥＳ）、データ集計部１１２は、Ｓ５１の処理で存在していると判定した集計前データ１３１から集計済データ１３２を生成する（Ｓ５３）。
【０１０３】
一方、データ集計部１１２は、集計済データ１３２の生成が行われていない集計前データ１３１が存在しないと判定した場合（Ｓ５２のＮＯ）、Ｓ５３の処理を行わない。
【０１０４】
その後、結果出力部１１６は、例えば、情報格納領域１３０に記憶された集計済データ１３２を用いることによって集計結果の算出を行う（Ｓ５４）。
【０１０５】
具体的に、結果出力部１１６は、例えば、Ｓ４４の処理で再集計を行った集計済データ１３２及びＳ５３の処理で集計を行った集計済データ１３２だけでなく、情報格納領域１３０に記憶された他の集計済データ１３２を用いることによって、事業者が予め指定した集計方法による集計を行う。
【０１０６】
なお、例えば、事業者が予め指定した集計方法が「９月１日の集計済データ１３２から１０月３１日の集計済データ１３２のサマリー」である場合、結果出力部１１６は、再集計が行われる可能性がない集計済データ１３２（９月１日の集計済データ１３２から１０月２９日の集計済データ１３２）についてのサマリーデータを予め生成しておくものであってもよい。そして、結果出力部１１６は、Ｓ５４の処理において、９月１日の集計済データ１３２から１０月２９日の集計済データ１３２のサマリーデータと、１０月３０日の集計済データ１３２と、１０月３１日の集計済データ１３２とを用いることによって、集計結果の算出を行うものであってもよい。
【０１０７】
これにより、結果出力部１１６は、集計結果の算出に要する時間をより短縮することが可能になる。
【０１０８】
そして、結果出力部１１６は、例えば、Ｓ５４の処理で算出した集計結果を事業者端末（図示しない）に出力する（Ｓ５５）。
【０１０９】
［結果出力処理の具体例］
次に、結果出力処理の具体例について説明を行う。図１５から図１８は、結果出力処理の具体例について説明する図である。
【０１１０】
［集計済データの具体例］
初めに、集計済データ１３２の具体例について説明を行う。図１５は、図１４で説明した集計前データ１３１から生成された集計済データ１３２の具体例を説明する図である。
【０１１１】
具体的に、図１５は、１０月３０日の午前９時に実行された集計実行処理によって、１０月２９日に発生した集計前データ１３１（１０月２９日の１時台から２４時台までの間に発生した集計前データ１３１）から生成された集計済データ１３２（１０月２９日の集計済データ１３２）の具体例を説明する図である。なお、図１５に示す集計済データ１３２は、店舗毎、商品毎及び時間毎に集計された集計済データ１３２である。
【０１１２】
図１５に示す集計済データ１３２は、各集計済データ１３２の集計に用いられた集計前データ１３１が発生した日付が設定される「日付」と、商品の販売が行われた店舗を識別する「店舗ＩＤ」と、販売された商品の種類を識別する「商品ＩＤ」とを項目として有する。また、図１５に示す集計済データ１３２は、各集計済データ１３２の集計に用いられた集計前データ１３１が発生した時間（時間帯）が設定される「時間」と、売上金額の合計が設定される「売上金額（円）」とを項目として有する。
【０１１３】
具体的に、図１５に示す集計済データ１３２のうちの１行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００１」が設定され、「時間」として「１（時台）」が設定され、「売上金額」として「３７８（円）」が設定されている。
【０１１４】
また、図１５に示す集計済データ１３２のうちの２行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００１」が設定され、「時間」として「２（時台）」が設定され、「売上金額」として「７５６（円）」が設定されている。図１５に含まれる他のデータについての説明は省略する。
【０１１５】
そして、例えば、集計前データ受付処理の実行中において、１０月３０日の２時台に発生した集計前データ１３１（操作端末３から送信された集計前データ１３１）に、１０月２９日の２時台に発生した集計前データ１３１に対する修正データが含まれていることを検知した場合、データ集計部１１２は、図１６の下線部分に示すように、図１４で説明した集計前データ１３１に対し、検知した修正データを追加する（Ｓ１３）。
【０１１６】
その後、データ判定部１１５は、１０月３１日の午前２時に行われる再集計情報生成処理において、１０月２９日の２時台に発生した集計前データ１３１から生成されたハッシュ値が変化していると判定する（Ｓ３２のＹＥＳ）。そのため、データ判定部１１５は、この場合、１０月２９日の２時台の集計済データ１３２を示す情報を、情報格納領域１３０に記憶された再集計情報１３４に追加する。
【０１１７】
続いて、データ集計部１１２は、１０月３１日の午前９時に行われる集計実行処理において、１０月２９日の２時台の集計済データ１３２を示す情報が再集計情報１３４に含まれていると判定し、図１７の下線部分に示すように、１０月２９日の２時台に発生した集計前データ１３１（「店舗ＩＤ」が「ＴＰ００１」であって「商品ＩＤ」が「ＳＨ００２」である集計前データ１３１）から集計済データ１３２の再集計を行う。
【０１１８】
また、データ集計部１１２は、この場合、前回（１０月３０日の午前９時）に集計実行処理が行われた後に、操作端末３から受け付けた集計前データ１３１（集計済データ１３２が未集計である集計前データ１３１）について、集計済データ１３２の生成を行う。
【０１１９】
その後、例えば、集計前データ受付処理の実行中において、１０月３１日の１時台に発生した集計前データ１３１（操作端末３から送信された集計前データ１３１）に、１０月２９日の２時台に発生した集計前データ１３１に対する修正データが含まれた場合、データ集計部１１２は、１１月１日の午前９時に行われる集計実行処理において、１０月２９日の２時台の集計済データ１３２を示す情報が再集計情報１３４に含まれていると判定し、図１８の下線部分に示すように、１０月２９日の１時台に発生した集計前データ１３１（「店舗ＩＤ」が「ＴＰ００１」であって「商品ＩＤ」が「ＳＨ００２」である集計前データ１３１）から集計済データ１３２の再集計を行う。
【０１２０】
このように、本実施の形態における情報処理装置１は、集計前データ１３１の集計の指示を受け付けた際に、生成済の集計済データ１３２から、指示を受け付けた集計の対象となる集計済データ１３２を特定する。そして、情報処理装置１は、特定した集計済データ１３２に、集計の指示を受け付ける前のあるタイミングにおけるデータと、集計の指示を受け付けたタイミングにおけるデータとが異なる集計前データ１３１から生成された第１の集計済データ１３２が存在するか否かを判定する。
【０１２１】
その結果、第１の集計済データ１３２が存在すると判定した場合、情報処理装置１は、第１の集計済データ１３２の再集計を行う。そして、情報処理装置１は、再集計した第１の集計済データ１３２と、特定した集計済データ１３２のうちの第１の集計済データ１３２以外の集計済データ１３２とに基づいて、集計の指示に対応する集計結果を算出して出力する。
【０１２２】
すなわち、情報処理装置１は、集計の指示を受けたタイミングと、それよりも前のタイミングとの間において異なっているデータに対応する集計済データ１３２を、修正データの発生に伴って再集計を行う必要が生じている集計済データ１３２として特定する。そして、情報処理装置１は、特定した集計済データ１３２についてのみ再集計を行う。
【０１２３】
これにより、情報処理装置１は、集計済データ１３２の生成に要する時間を短縮させることが可能になる。そのため、情報処理装置１は、集計済データ１３２の集計が他の処理に影響を及ぼすことを防止することが可能になる。
【０１２４】
なお、例えば、再集計情報生成処理が毎日行われるのに対し、集計実行処理が数日毎に行われる場合、情報処理装置１は、集計実行処理を行う際に、集計実行処理が前回行われてから現在までの各日に対応する集計実行処理をそれぞれ行う。
【０１２５】
具体的に、例えば、１０月３０日まで集計実行処理が毎日行われた場合において、次に集計実行処理が行われた日付が１１月１日であった場合（すなわち、１０月３１日に集計実行処理が行われなかった場合）、情報処理装置１は、初めに、修正データが追加された可能性がある集計前データ１３１を、１０月２９日及び１０月３０日に発生した集計前データ１３１とした場合における集計実行処理（１０月３１日分の集計実行処理）を行う。そして、情報処理装置１は、その後、修正データが追加された可能性がある集計前データ１３１を、１０月３０日及び１０月３１日に発生した集計前データ１３１とした場合における集計実行処理（１１月１日分の集計実行処理）を行う。
【０１２６】
これにより、情報処理装置１は、集計実行処理が毎日行われない場合であっても、各データの整合性を維持しながら結果出力処理を行うことが可能になる。
【０１２７】
［第２の実施の形態］
次に、第２の実施の形態について説明する。図１９及び図２０は、第２の実施の形態における結果出力処理を説明するフローチャート図である。また、図２１から図２７は、第２の実施の形態における結果出力処理を説明する図である。
【０１２８】
第２の実施の形態における結果出力処理は、第１の実施の形態において説明した場合と異なり、同一の集計前データ１３１から複数の集計単位による集計済データ１３２を作成する。
【０１２９】
なお、第２の実施の形態における結果出力処理は、第１の実施の形態における結果出力処理と比較して、Ｓ４４及びＳ５３の処理の詳細のみが異なる。そのため、以下、第２の実施の形態における結果出力処理のうち、Ｓ４４及びＳ５３の処理の詳細についてのみ説明を行う。
【０１３０】
［Ｓ４４の処理の詳細］
初めに、第２の実施の形態におけるＳ４４の処理の詳細について説明を行う。図１９は、第２の実施の形態におけるＳ４４の処理の詳細について説明するフローチャート図である。
【０１３１】
データ集計部１１２は、図１９に示すように、情報格納領域１３０に記憶された集計単位情報１３３を参照し、Ｓ４２の処理で情報が含まれていると判定した集計済データ１３２に対応する集計単位を特定する（Ｓ６１）。以下、集計単位情報１３３の具体例について説明を行う。
【０１３２】
［集計単位情報の具体例］
図２１は、集計単位情報１３３の具体例について説明する図である。集計単位情報１３３は、例えば、図２１に示すように、ツリー構造を有する情報である。
【０１３３】
具体的に、図２１に示す集計単位情報１３３は、第１階層（一番上の階層）に、「全店舗」が位置しており、第２階層（上から２番目の階層）に、各店舗の「店舗ＩＤ」を示す「ＴＰ００１」及び「ＴＰ００２」等が位置している。また、図２１に示す集計単位情報１３３は、第３階層（上から３番目の階層）に、各店舗において販売されている各商品の「商品ＩＤ」を示す「ＳＨ００１」及び「ＳＨ００２」等が位置しており、第４階層（一番下の階層）に、各商品が販売された各時間を示す「１時台」及び「２時台」等が位置している。
【０１３４】
すなわち、図２１に示す集計単位情報１３３は、店舗毎、商品毎及び時間毎の集計済データ１３２（第４階層に対応する集計済データ１３２）の再集計が行われた場合、店舗毎及び商品毎の集計済データ１３２（第３階層に対応する集計済データ１３２）の再集計と、店舗毎の集計済データ１３２（第２階層に対応する集計済データ１３２）の再集計と、全店舗の集計済データ１３２（第１階層に対応する集計済データ）の再集計を行う必要があることを示している。
【０１３５】
そして、例えば、図１５で説明した集計済データ１３２は、店舗毎、商品毎及び時間毎の集計済データ１３２である。そのため、データ集計部１１２は、Ｓ６１の処理において、店舗毎、商品毎及び時間毎の集計単位に加え、店舗毎及び商品毎の集計単位と、店舗毎の集計単位と、全店舗の集計単位とを特定する。
【０１３６】
なお、集計単位情報１３３は、図２１で説明した例の他、例えば、商品毎の集計済データ１３２の再集計を行う必要があることを示す情報を含むものであってもよい。以下、各集計単位の集計済データ１３２について説明を行う。
【０１３７】
［店舗毎及び商品毎の集計済データの具体例］
初めに、店舗毎及び商品毎の集計済データ１３２の具体例について説明を行う。図２２は、店舗毎及び商品毎の集計済データ１３２の具体例について説明する図である。なお、図２２に示す集計済データ１３２は、図１５で説明した集計済データ１３２と同様に、図１４で説明した集計前データ１３１から生成されたものである。
【０１３８】
図２２に示す集計済データ１３２は、各集計済データ１３２の集計に用いられた集計前データ１３１が発生した日付が設定される「日付」と、商品の販売が行われた店舗を識別する「店舗ＩＤ」と、販売された商品の種類を識別する「商品ＩＤ」とを項目として有する。また、図２２に示す集計済データ１３２は、売上金額の合計が設定される「売上金額（円）」を項目として有する。
【０１３９】
具体的に、図２２に示す集計済データ１３２のうちの１行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００１」が設定され、「売上金額」として「５２，４６１（円）」が設定されている。
【０１４０】
また、図２２に示す集計済データ１３２のうちの２行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００１」が設定され、「商品ＩＤ」として「ＳＨ００２」が設定され、「売上金額」として「３２，４５６（円）」が設定されている。図２２に含まれる他のデータについての説明は省略する。
【０１４１】
［店舗毎の集計済データの具体例］
次に、店舗毎の集計済データ１３２の具体例について説明を行う。図２３は、店舗毎の集計済データ１３２の具体例について説明する図である。なお、図２３に示す集計済データ１３２は、図１５で説明した集計済データ１３２と同様に、図１４で説明した集計前データ１３１から生成されたものである。
【０１４２】
図２３に示す集計済データ１３２は、各集計済データ１３２の集計に用いられた集計前データ１３１が発生した日付が設定される「日付」と、商品の販売が行われた店舗を識別する「店舗ＩＤ」と、売上金額の合計が設定される「売上金額（円）」とを項目として有する。
【０１４３】
具体的に、図２３に示す集計済データ１３２のうちの１行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００１」が設定され、「売上金額」として「３２５，３１６（円）」が設定されている。
【０１４４】
また、図２３に示す集計済データ１３２のうちの２行目のデータには、「日付」として「１０／２９」が設定され、「店舗ＩＤ」として「ＴＰ００２」が設定され、「売上金額」として「２１３，８９１（円）」が設定されている。図２３に含まれる他のデータについての説明は省略する。
【０１４５】
［全店舗の集計済データの具体例］
次に、全店舗の集計済データ１３２の具体例について説明を行う。図２４は、全店舗の集計済データ１３２の具体例について説明する図である。なお、図２４に示す集計済データ１３２は、図１５で説明した集計済データ１３２と同様に、図１４で説明した集計前データ１３１から生成されたものである。
【０１４６】
図２４に示す集計済データ１３２は、各集計済データ１３２の集計に用いられた集計前データ１３１が発生した日付が設定される「日付」と、売上金額の合計が設定される「売上金額（円）」とを項目として有する。
【０１４７】
具体的に、図２４に示す集計済データ１３２のうちの１行目のデータには、「日付」として「１０／２９」が設定され、「売上金額」として「３，４６３，３６５（円）」が設定されている。
【０１４８】
図１９に戻り、データ集計部１１２は、Ｓ６１の処理で特定した集計単位毎に、Ｓ４２で情報が含まれていると判定した集計済データを再集計する（Ｓ６２）。
【０１４９】
具体的に、データ集計部１１２は、例えば、図２５から図２７の下線部分に示すように、Ｓ６１の処理で特定した集計単位毎に集計済データ１３２の再集計を行う。
【０１５０】
これにより、情報処理装置１は、複数の集計単位の集計済データ１３２が存在する場合であっても、修正データの発生に伴って再集計が必要となった集計済データ１３２の再集計を網羅的に行うことが可能になる。
【０１５１】
［Ｓ５３の処理の詳細］
次に、第２の実施の形態におけるＳ５３の処理の詳細について説明を行う。図２０は、第２の実施の形態におけるＳ５３の処理の詳細について説明するフローチャート図である。
【０１５２】
データ集計部１１２は、情報格納領域１３０に記憶された集計単位情報１３３を参照し、Ｓ５１の処理で存在していると判定した集計前データ１３１から生成される集計済データ１３２に対応する集計単位を特定する（Ｓ７１）。
【０１５３】
そして、データ集計部１１２は、Ｓ７１の処理で特定した集計単位毎に、Ｓ５１の処理で存在していると判定した集計前データ１３１から集計済データ１３２を生成する（Ｓ７２）。
【０１５４】
これにより、情報処理装置１は、複数の集計単位の集計済データ１３２を生成する場合であっても、必要な集計済データ１３２の生成を網羅的に行うことが可能になる。
【０１５５】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１５６】
（付記１）
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定し、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行い、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【０１５７】
（付記２）
付記１において、
前記判定する処理では、
特定した前記集計済データ毎に、前記集計の指示を受け付ける前のあるタイミングにおけるデータから算出されたハッシュ値と、前記集計の指示を受け付けたタイミングにおけるデータから算出されたハッシュ値とが異なるか否かを判定し、
前記ハッシュ値が異なると判定した前記集計済データを、前記第１の集計済データとして特定する、
ことを特徴とする情報処理プログラム。
【０１５８】
（付記３）
付記１において、
前記複数の期間は、異なる長さの期間を含む、
ことを特徴とする情報処理プログラム。
【０１５９】
（付記４）
付記１において、さらに、
前記集計の対象となる集計済データに、未集計である第２の集計済データが含まれている場合、前記集計結果を算出する前に、前記第２の集計済データの集計を行う、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【０１６０】
（付記５）
付記１において、
前記判定する処理では、特定した前記集計済データのうち、前記異なるデータが含まれる可能性がある集計済データについて、前記第１の集計済データが存在するか否かの判定を行う、
ことを特徴とする情報処理プログラム。
【０１６１】
（付記６）
付記１において、
前記記憶部に記憶した集計済データは、前記複数の期間毎であって所定の集計単位毎の集計済データであり、さらに、
前記第１の集計済データが存在すると判定した場合、前記記憶部に記憶した前記所定の集計単位毎の他の集計済データから、前記集計の対象となる他の集計済データを特定し、
特定した前記他の集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータを含む第３の集計済データが存在するか否かを判定し、
前記第３の集計済データが存在すると判定した場合、前記第３の集計済データの再集計を行い、
再集計した前記第３の集計済データと、特定した前記他の集計済データのうちの前記第３の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する他の集計結果を算出して出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【０１６２】
（付記７）
付記６において、
前記複数の期間毎であって前記所定の集計単位毎の集計済データは、前記複数の期間毎であって商品を販売する店舗毎の集計済データであり、
前記所定の集計単位毎の他の集計済データは、前記店舗毎の集計済データである、
ことを特徴とする情報処理プログラム。
【０１６３】
（付記８）
付記６において、
前記複数の期間毎であって前記所定の集計単位毎の集計済データは、前記複数の期間毎であって商品の種類毎の集計済データであり、
前記所定の集計単位毎の他の集計済データは、前記商品毎の集計済データである、
ことを特徴とする情報処理プログラム。
【０１６４】
（付記９）
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定するデータ特定部と、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定するデータ判定部と、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行うデータ集計部と、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する結果出力部と、を有する、
ことを特徴とする情報処理装置。
【０１６５】
（付記１０）
付記９において、
前記データ判定部は、
特定した前記集計済データ毎に、前記集計の指示を受け付ける前のあるタイミングにおけるデータから算出されたハッシュ値と、前記集計の指示を受け付けたタイミングにおけるデータから算出されたハッシュ値とが異なるか否かを判定し、
前記ハッシュ値が異なると判定した前記集計済データを、前記第１の集計済データとして特定する、
ことを特徴とする情報処理装置。
【０１６６】
（付記１１）
集計の指示を受け付けた際に、記憶部に記憶した複数の期間毎の集計済データから、前記集計の対象となる集計済データを特定し、
特定した前記集計済データに、前記集計の指示を受け付ける前のあるタイミングにおけるデータと、前記集計の指示を受け付けたタイミングにおけるデータとが異なるデータから生成された第１の集計済データが存在するか否かを判定し、
前記第１の集計済データが存在すると判定した場合、前記第１の集計済データの再集計を行い、
再集計を行った前記第１の集計済データと、特定した前記集計済データのうちの前記第１の集計済データ以外の集計済データとに基づいて、前記集計の指示に対応する集計結果を算出して出力する、
ことを特徴とする情報処理方法。
【０１６７】
（付記１２）
付記１１において、
前記判定する工程では、
特定した前記集計済データ毎に、前記集計の指示を受け付ける前のあるタイミングにおけるデータから算出されたハッシュ値と、前記集計の指示を受け付けたタイミングにおけるデータから算出されたハッシュ値とが異なるか否かを判定し、
前記ハッシュ値が異なると判定した前記集計済データを、前記第１の集計済データとして特定する、
ことを特徴とする情報処理方法。
【符号の説明】
【０１６８】
１：情報処理装置          ３ａ：操作端末
３ｂ：操作端末            ３ｃ：操作端末
１３０：情報格納領域      １３１：集計前データ
１３２：集計済データ
【図１】
2020004013.tif 000003
【図２】
2020004013.tif 000004
【図３】
2020004013.tif 000005
【図４】
2020004013.tif 000006
【図５】
2020004013.tif 000007
【図６】
2020004013.tif 000008
【図７】
2020004013.tif 000009
【図８】
2020004013.tif 000010
【図９】
2020004013.tif 000011
【図１０】
2020004013.tif 000012
【図１１】
2020004013.tif 000013
【図１２】
2020004013.tif 000014
【図１３】
2020004013.tif 000015
【図１４】
2020004013.tif 000016
【図１５】
2020004013.tif 000017
【図１６】
2020004013.tif 000018
【図１７】
2020004013.tif 000019
【図１８】
2020004013.tif 000020
【図１９】
2020004013.tif 000021
【図２０】
2020004013.tif 000022
【図２１】
2020004013.tif 000023
【図２２】
2020004013.tif 000024
【図２３】
2020004013.tif 000025
【図２４】
2020004013.tif 000026
【図２５】
2020004013.tif 000027
【図２６】
2020004013.tif 000028
【図２７】
2020004013.tif 000029