ありがとうございました。私はちょうど2つの異なるビューを作成しました1つは、QUOTATIONDOCNUMを部分文字列化し、最後の選択を含む他のビューです。このようになります
WITH t2
AS (
SELECT [QUOTATIONID]
,[QUOTATIONDATE]
,[SALESID]
,[RESPITEDATE]
,[ORDERACCOUNT]
,[INVOICEACCOUNT]
,[CUSTGROUP]
,[PURCHASEORDER]
,[DELIVERYNAME]
,[CUSTOMERREF]
,[DLVTERM]
,[DLVMODE]
,[PAYMENT]
,[CASHDISCCODE]
,[CASHDISCPERCENT]
,[QTY]
,row_number() OVER (
PARTITION BY QUOTATIONDOCNUM ORDER BY recid DESC
) AS t1
FROM [CUSTQUOTATIONJOUR_vw_revised]
)
SELECT [QUOTATIONID]
,[QUOTATIONDATE]
,[SALESID]
,[RESPITEDATE]
,[ORDERACCOUNT]
,[INVOICEACCOUNT]
,[CUSTGROUP]
,[PURCHASEORDER]
,[DELIVERYNAME]
,[CUSTOMERREF]
,[DLVTERM]
,[DLVMODE]
,[PAYMENT]
,[CASHDISCCODE]
,[CASHDISCPERCENT]
,[QTY]
FROM t2
WHERE t1 = 1;
where句の部分文字列から8文字を取り出すよりも、必ず結合する方が良いフィールドがあります。そこには大きなパフォーマンスがあります。実際のドキュメント番号やキーフィールドはありませんか?また、すべての列(*)ではなく必要な列だけを返す方が良い方法です。 –
@JacobH残念ながら他の列はありません。 docnumは、例えば、 Q12345-1、Q12345-2、Q12345-3と私は常に最新のものを返すことになっています。必要な列だけを返します。 – PearlP
データモデルを設計するときに[最初の標準形式](https://en.wikipedia.org/wiki/First_normal_form)に従うべき理由がわかりました。パフォーマンスの問題は、設計上のバグの結果です。 –