我有三个表,其中两个是主表,另一个是map。它们在下面给出。
/ *
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
*/
现在,第三个表是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,第二列是tbl_SubCategory的PK,第三列是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
我的问题是每行我得到的公司总数相同。请帮我。
试试这个:
BEGIN
SELECT tbl_SubCategory.Name AS SubCategoryName, COUNT(*) AS TotalCompanies
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
ORDER BY tbl_SubCategory.Name
END
表 1:发票(inv_id、inv_value、cust_id) 表 2:客户(cust_id、sales_rep) 表 3:成员(Member_id、member_cateogry、member_type、cust_id) 注1:每个客户支付多张发票。(一对多关系)。< br >注2:每个客户为一个或多个会员付费(因此一个客户可能与多个会员相关)。< br >注3:每个成员都有一个类别,可以是1
问题内容: 所以我查了一下,这个问题非常相似,但是它缺少一个关键点:SQL Server计算表的每一列中不同值的数量 因此,在这个问题中,他们希望每列的计数都不同。我想要做的是获取表中每个列的每个不同值的计数(而我正在为特定数据库中的所有表执行此操作,这就是为什么我要尝试尽可能地自动化这一点的原因尽可能)。当前,我的代码看起来像这样,我必须为每一列运行: 理想情况下,我的输出应如下所示: 以此类推
问题内容: 我想对同一字段进行计数以获得不同的值,例如: 用户{user_id,性别} 性别显然可以是男性或女性:) 我想获得所有男性和女性的计数,即 但我很困惑,因为他们来自同样的感谢 问题答案: 尝试以下操作以获得明智的结果: 输出: 尝试以下操作以获得总计的行明智结果: 输出: 尝试此操作以获得列明智的结果: 输出: 看到这个SQLFiddle
问题内容: 假设有两个表: 表A 表B 表之间的联系是 messageID 字段。 我想要一个查询来生成这样的结果,在该查询中,我将所有字段从表A中拉出,并对表B中每条消息的注释数进行计数,如下所示: 我已经尝试过这样的事情: 但这是行不通的。有任何想法吗?似乎应该可以在一个查询中执行此操作。我正在使用MSSQL。谢谢你的帮助。 问题答案: 标量子查询将起作用: 与往常一样,有很多方法可以改变这只
问题内容: 我有两个表: 这是表1: 这是表2: 现在,我想从这些表中获取数据。在两个表中都相同。 我想拿 和其他表。 请帮我做到这一点。 问题答案: 我假设您在第二个表中有一个命名字段(您没有列出它): 您应该查看有关的MySQL手册,因为这是编写SQL查询的非常基本的部分。您也可以考虑为product_id字段添加索引,以使查询运行更快。
问题内容: 但是我还需要知道: 如何在 Microsoft SQL Server (以我的情况为2008)中完成此操作? 问题答案: 您可以通过查询Information Schema视图获得此信息,甚至更多。 此示例查询: