이것은 상당히 일반적인 질문입니다. 구체적인 내용이 없으면 구체적인 답변을 제공하는 것이 매우 어렵습니다. 그러나 여기에서는 과거에 사용한 몇 가지 해결책이 있습니다.
일반적으로 이러한 보고서에는 월, 지역, 영업 사원, 제품 유형 등으로 분류 할 수있는 '총계'행이 있지만 일반적으로 '전체 위젯 판매'행이 있습니다. 이것이 빠른 쿼리 (조인 및 기타 상세 검색을 제거해야 할 수도 있음) 인 경우 보고서 데이터를 생성 한 후 해당 쿼리를 실행하면 보고서 끝에있는 총계와 총계를 비교할 수 있습니다. 결과가 다르면 보고서를 실행하는 동안 데이터가 변경된 것입니다.
다른 옵션 - SQLServer 관련 -은보고하는 데이터에 대해 checksum을 사용하는 것입니다. 보고 실행의 시작과 끝 사이에 체크섬이 변경되면 데이터가 변경되었음을 알 수 있습니다.
마지막으로 - 가장 극적으로 - 보고서의 정확도가 중요한 경우 특정 행이보고 실행에 포함되었다는 사실을 저장할 수 있습니다. 이렇게하면 보고서가 훨씬 복잡해 지지만 필요한 모든 데이터가 포함되어 있다는 것을 분명히 알 수 있습니다. 예 :
insert into reporting_history
select @reportID, widget_sales_id
from widget_sales
--- reporting logic here
select widget.cost,
widget_sales.date,
widget_sales.price,
widget_sales......
from widgets inner join widget sales on ...
inner join reporting_history on widget_sales.widget_sales_id = widget_sales.widget_sales_id
---- all your other logic
이것은 너무 광범위합니다. 우리는 귀하의 데이터, 스키마, 당신이 직면하고있는 문제의 실제 예를 데이터를 생성하는 데 사용하는 방법에 대한 정보가 거의 없습니다. 실제 프로세스를 볼 수있는 간단한 프로세스 플로우로 민감한 정보를 포함하지 않는 더미 보고서 데이터를 작성해야합니다. – Tanner