select sl.*,
(select pnd_invoiceno
from PINVDET
where PND_INVNO = sl.invno and
abs(DATEDIFF(ss, pnd_date, sl.adjustedon)) =
(select min(abs(DATEDIFF(ss, pnd_date, sl.adjustedon)))
from PINVDET
where pnd_invno = sl.invno))
from vwstocklog sl where sl.invno in (select invno from vwStockDiff)
order by sl.invno, sl.adjustedon
上記のクエリを実行すると、次のエラーが表示されます。
外部参照を含む集計式に複数の列が指定されています。集計される式に外部参照が含まれる場合、その外部参照は、式で参照される唯一の列である必要があります。
集計で参照されてmin(abs(DATEDIFF(ss, pnd_date, sl.adjustedon)))
いるため、式が問題であると言っていることを理解しています。集計式で参照されている唯一の列でない限り、そうすることができません。私がよくわからないのは、それを修正する方法です。sl.adjusted
min()
私がここでやろうとしているのは、同じ項目に最も近い値を持つpnd_invoiceno
レコードの値を見つけることです (そして、これが複数のレコードにリンクする可能性があることを認識しています)。pinvdet
pnd_date
sl.adjustedon
それを達成するためにこのクエリを調整する方法についてのアイデアはありますか?