이 쿼리 가져 오는 데이터가 매우 slow..I 쿼리를 빠르게 할 매우 느리게 가져 오기 ..SQL 선택 쿼리
데이터베이스에서 데이터를 가져 오는 동안 너무 많은 시간이 소요됩니다 즉 .. 그래서 나는 해결책이 필요합니다. .
SELECT DISTINCT
ISNULL(V.VendorItemId, 0) AS VendorItemId,
ISNULL(V.VendorItemNumber, I.Ord_guide) AS VendorItemNumber,
ISNULL(V.VendorItemDescription, I.Pkg_desc) AS VendorItemDescription,
Id = (SELECT Min(k.Id)
FROM dbo.InvoiceImportDataPrice k
WHERE K.Ord_guide = I.Ord_guide
AND K.Price = I.Price
AND k.Pkg_desc = I.Pkg_desc
AND k.Store_name = I.Store_name
AND k.InvoiceImportHistoryId = 128),
I.InvoiceImportHistoryId, I.Price,
ISNULL(V.CurrentPrice, 0) AS CurrentPrice,
ISNULL(ISNULL(V.CurrentPrice, 0) - ISNULL(I.Price, 0), 0) AS differencePrice,
I.Invoice_No, I.Sold_to, I.Store_name, I.Deliv_date,
(CASE WHEN ISNULL(I.Qty_ship, '0') = '0' THEN '-0' ELSE I.Qty_ship END) AS Qty_ship,
I.Ship_um,
(CASE WHEN ISNULL(I.Qty_ord, '0') = '0' THEN '-0' ELSE I.Qty_ord END) AS Qty_ord,
I.Item_no, I.Weight,
(CASE WHEN ISNULL(I.Amount, '0') = '0' THEN '-0' ELSE I.Amount END) AS Amount,
I.Pkg_desc, I.Tax_amount, I.Ord_guide,
(SELECT COUNT(*)
FROM dbo.InvoiceImportDataPrice IP
WHERE IP.Pkg_desc = V.VendorItemDescription
AND IP.Item_no = V.VendorItemNumber
AND IP.Price = V.CurrentPrice) AS PriceDiscrepancyCount
FROM
dbo.InvoiceImportDataPrice I
LEFT JOIN
dbo.VendorItems V WITH (NOLOCK) ON V.VendorItemNumber = I.Ord_guide
WHERE
(I.InvoiceImportHistoryId = 128 AND VendorItemDescription != '"Sales Tax"')
or
(I.InvoiceImportHistoryId = 128 AND ISNULL(V.VendorItemDescription, '') = '')
내 문제는이 개 하위 쿼리에 있습니다 :
1.
다음 내 SQL Server 쿼리입니다Id = (SELECT Min(k.Id)
FROM dbo.InvoiceImportDataPrice k
WHERE K.Ord_guide = I.Ord_guide
AND K.Price = I.Price
AND k.Pkg_desc = I.Pkg_desc
AND k.Store_name = I.Store_name
AND k.InvoiceImportHistoryId = 128)
2.
(SELECT COUNT(*)
FROM dbo.InvoiceImportDataPrice IP
WHERE IP.Pkg_desc = V.VendorItemDescription
AND IP.Item_no = V.VendorItemNumber
AND IP.Price = V.CurrentPrice) AS PriceDiscrepancyCount
마노 색인 너 – Jaihind
그런 식의 코드를 작성합니까? 적절한 형식을 지정하면 작업이 훨씬 쉬워집니다. – jarlh
나는 –