問題は、データベースにいくつかの値がありません。問題を最も近いクロス集計クエリで検索する必要があります。ACCESS - クロス集計クエリ - 最も近い一致
私はクロス集計表では、このように思える:
これは、競合他社の価格の値が欠落している - 項目111のために、私は最初の競技者とのための第二週の第3週の料金を持っていません第2競技者。アイテム222については、第1競技者の第2週価格および第2競技者のための1,3週間が欠場する。私は、出力データに最も近い週価格を使用したいと思います。
出力(物価指数計算用)(Excelのピボットテーブルでさらに計算を行うために列に競合他社の価格を)次のようになります。
の質問はどのように「検索」最も近い週の競争相手の価格、私はオレンジ色の不足価格をマークしました。
ご質問がある場合は、問題が明確になることを願っています。質問してください、私はすべてを明確にしようとします! 事前に感謝します!
Upd。 私が(サブクエリを持つ)は、次の方法でそれをやろう:
SELECT m_week, item_code, my_price, (SELECT TOP 1 com_price
FROM MyTable AS T
WHERE T.item_code = MyTable.item_code
AND T.m_week <= MyTable.m_week
AND competotor_id = 1
ORDER BY T.m_week) AS Comp1_price, (SELECT TOP 1 com_price
FROM MyTable AS T
WHERE T.item_code = MyTable.item_code
AND T.m_week <= MyTable.m_week
AND competotor_id = 2
ORDER BY T.m_week) AS Comp2_price
... the same for each competitor
FROM MyTable
それは動作します..しかし、非常に遅く、私は各競技のために/ペーストをコピーする必要があります。次の事 - 私は(週に沿って)だけでなく、ダウン、だけでなく、アップの価格を検索したい
ご挨拶ありがとうございます!しかし、私はあなたの答えを読んで、私は問題の記述を間違えたことに気付きました。私は実際に行方不明の価格がないと私はそれが最初の質問を複雑に思う。 –
多分nz()関数をクロス集計クエリに追加することができます。今度は次のようになります。 'TRANSFORM Avg(p.com_price)SELECT p.m_week、p.item_code、p.my_price from MyTable p。GROUP BY p.m_week、p.item_code、p.my_price PIVOT p.competitor_id' –