私は3つのテーブルSQL Server 2012でサブクエリを使用してカテゴリごとの数量と重量を取得する方法は?
- 項目
- ItemCategories
- 私が持っている次のクエリを拡張する方法を知りたいItemsToPackingLists
あります
- の数量あまりにItemCategory件数(SumItemsOfCategory)
- ItemCategory(SumWeightOfItemsOfCategory)あたりのアイテムの重量。
ItemsOfPacklistはすでに仕事をして計算するサブクエリ。どんな助けもありがとうございます。
SELECT items.ID,
items.NameOfItem,
items.WeightInGrams,
ICategories.NameOfCategory,
IToPLs.Quantity,
(items.WeightInGrams * IToPLs.Quantity) AS TotalWeightInGrams,
(SELECT SUM(IToPLs2.Quantity)
FROM ItemsToPackingLists AS IToPLs2
WHERE PackingListID = 1
) AS ItemsOfPackingList
FROM trekking_Items AS items
LEFT JOIN ItemCategories AS ICategories ON
items.ItemCategoryID = ICategories.ID
LEFT OUTER JOIN ItemsToPackingLists AS IToPLs ON
items.ID = IToPLs.ItemID
WHERE PackingListID = 1
ORDER BY ICategories.SortID ASC
サブクエリはこれを行うにはひどく非効率的な方法のようです。あなたは、あなたのメインクエリの同じベーステーブルに既にヒットしています。さらに悪いことに、サブクエリを相関サブクエリにする必要があります。それが立つにつれて、毎回同じ価値が得られます。いくつかの基本的な集約は、実際にここで必要なすべてです。この記事を読んで、素晴らしい場所を見つけてください。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –