我想獲得一個有效的方式做下面的存儲過程。此過程將顯示屬於所有類別市場中企業的汽車數量。有效的SQL存儲過程與連接和不同
我有類別表是主要選擇,然後我進入汽車表來計算汽車並在類別內加入他們的業務,這裏是真正效率低下的地方我然後檢查選定的市場/地點或沒有選擇所有市場。這裏是。
Create PROC [USP_CAT]
@MKT int
AS
BEGIN
SELECT *,
(
SELECT COUNT(CAR_ID)
FROM CARS
INNER JOIN BUSINESS ON CAR_BIZ=BIZ_ID
JOIN BIZCATS ON BC_BIZ = BIZ_ID AND BC_CAT = CAT_ID
WHERE BIZ_APPROVED = 1 AND BIZ_EXPIRES >= getDate() AND
(
SELECT COUNT(BLOC_MKT)
FROM BIZLOCS
WHERE BIZ_ID = BLOC_BIZ AND (BLOC_MKT = @MKT OR @MKT = -1)
)>0
) AS CAT_CAR_COUNT
FROM CATS
WHERE CAT_HIDE = 0
ORDER BY CAT_ORDER asc
END
任何建議來整理這是非常讚賞。
如果您發佈了DDL,一些示例插入以及您期望的結果,您將獲得更好的結果。 – granadaCoder 2014-09-10 12:58:02