私は2つがマスターテーブルで、もう1つはマップです3つのテーブルがあります。それらは以下の通りです。SQLテーブルからのカウントを取得
tbl_Category有する列ID(PK)および名前
/*
ID NAME 1 Agriculture & Furtilizers 2 Apparel & Garments 3 Arts & Crafts 4 Automobiles
*/
tbl_SubCategory
/* Id SubCategoryName CategoryId (FK, PK of above) 2 Badges, Emblems, Ribbons & Allied 2 3 Barcodes, Stickers & Labels 2 4 Child Care & Nursery Products 2 9 Fabrics & Textiles 2 */
3番目の表はtbl_Company_Category_Mapです。ここでは、すべてのカテゴリとその会社のサブカテゴリを保持しています。以下はそのスキーマとデータです。上記
/*
CompanyCategoryId SubCategoryId CategoryId CompanyId
10 36 11 1
11 38 11 1
12 40 11 1
*/
、最初の列tbl_Company_Category_MapのPK、第2列はtbl_SubCategoryのPKであり、3つ目はtbl_CategoryのPKであり、最後のものは、会社のIDです。 今、私が望むのは、カテゴリの各サブカテゴリに表示されているディスプレイの合計企業を表示することです。このようなもの。
Subcategory Name Total COmpanies
Apparel, Clothing & Garments 1153
Badges, Emblems, Ribbons & Allied Products 4100
Barcodes, Stickers & Labels 998
Child Care & Nursery Products 2605
Cotton Bags, Canvas Bags, Jute Bags & Other Fabric Bags 2147
私は、クエリを使用しています:
BEGIN
SELECT tbl_SubCategory.Name AS SubCategoryName, tbl_Category.Name AS CategoryName, TotalCompanies=(Select COUNT(*) From tbl_Company_Category_Map WHERE CategoryId = @Id)
FROM tbl_Category INNER JOIN
tbl_Company_Category_Map ON tbl_Category.Id = tbl_Company_Category_Map.CategoryId INNER JOIN
tbl_SubCategory ON tbl_Company_Category_Map.SubCategoryId = tbl_SubCategory.Id
WHERE (tbl_Company_Category_Map.CategoryId = @Id)
Group By tbl_SubCategory.Name , tbl_Company_Category_Map.CategoryId, tbl_Category.Name
ORDER BY tbl_Company_Category_Map.CategoryId
END
私の問題は、私は、各行に同じ企業の総数を取得していますということです。私を助けてください。