1

2 つのデータベース (MS SQL Server) があります。1 つは現在のレポート テーブルのセットで、もう 1 つは先週のレポート テーブルのセットです。毎週、それぞれのすべてのメジャー (ただし、行数は週ごとに異なる場合があります) を前の週と比較し、QTD と YTD の数値が増加していることを確認します。行の順序は毎週異なる可能性があるため、何をするにしてもそれを考慮する必要があります。

もう 1 つの考慮事項は、比較するこれらのテーブルが約 50 あるため、それぞれを手動で行うことは選択肢にならないということです。また、今週の YTD が先週よりも高くない値がある場合など、何らかのエラー ログがあると便利です。

今週

+-------+------------+--------+
| Item  | TimePeriod | Number |
+-------+------------+--------+
| Pigs  | QTD        |     28 |
| Pigs  | YTD        |     86 |
| Cows  | QTD        |      7 |
| Cows  | YTD        |      9 |
| Bears | QTD        |     67 |
| Bears | YTD        |    132 |
+-------+------------+--------+

前の週

+-------+------------+--------+
| Item  | TimePeriod | Number |
+-------+------------+--------+
| Bears | QTD        |     55 |
| Bears | YTD        |    120 |
| Pigs  | QTD        |     22 |
| Pigs  | YTD        |     80 |
| Cows  | QTD        |      5 |
| Cows  | YTD        |     10 |
+-------+------------+--------+

エラー

エラー: 乳牛 YTD 現在の週-9 前の週-10

4

2 に答える 2

1

たぶん、次のようなことができます:

SELECT 'Error ' + CW.TimePeriod + ' Current week:' + CAST(CW.Number AS VARCHAR) + ' Prev week:' + CAST(PW.Number AS VARCHAR)
FROM [Current Week DB].Table CW 
INNER JOIN [Previous DB].Table PW ON 
  CW.ITEM=PW.ITEM 
  AND CW.TIMEPERIOD=PW.TIMEPERIOD 
  AND CW.Number=PW.Number

すべての列を結合すると、テーブル間で変更されていない行が得られます。テーブルの識別子は明らかに変更する必要があります。

于 2013-06-26T15:15:18.750 に答える