c# - 如何计算有多少客户在 SQL 中购买了产品
问题描述
我有一个显示公司销售产品的 C# 应用程序。该列旁边是产品类型,最后一列是购买该产品的客户数量。这是我填充前两列的 SQL 查询:
string selectQuery;
selectQuery = "SELECT Products.ProductID, Products.ProductTypeID, ";
selectQuery = selectQuery + "Products.ProductName, Products.YearlyPremium, ProductTypes.ProductType ";
selectQuery = selectQuery + "FROM Products ";
selectQuery = selectQuery + "INNER JOIN ProductTypes ON Products.ProductTypeID = ProductTypes.ProductTypeID "
现在我需要计算出有多少客户购买了每种产品。我想我需要使用该COUNT(*)
方法来获取 CustomerID,但现在确定如何将其集成到此查询中。这是架构
我用来在 listView 中显示数据的代码是这样的:
SqlConnection conn = ConnectionsManager.DatabaseConnection();
SqlDataReader rdr = null;
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(selectQuery, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Products product = new Products(int.Parse(rdr["ProductID"].ToString()),
int.Parse(rdr["ProductTypeID"].ToString()),
rdr["ProductName"].ToString(),
Math.Round(decimal.Parse(rdr["YearlyPremium"].ToString()), 2));
ProductTypes productType = new ProductTypes(int.Parse(rdr["ProductTypeID"].ToString()),
rdr["ProductType"].ToString());
ListViewItem lvi = new ListViewItem(product.ProductName.ToString());
lvi.SubItems.Add(productType.ProductType.ToString());
\\lvi.SubItems.Add(customer.CustomerID.ToString()); <---this will be the line to display the customer count
lvMain.Items.Add(lvi);
}
if (rdr != null)
rdr.Close();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Unsuccessful" + ex);
}
解决方案
尝试使用 Group by 子句。它会起作用的。 例子:
SELECT COUNT(ProductId),CustomerId
FROM Product
GROUP BY CustomerId;
这种
推荐阅读
- oracle-apex - Oracle Apex:如果班车列表仅包含单个项目,则自动选择
- javascript - 如何在 jest 和酵素中设置 useState Hook 的初始状态值?
- clickhouse - clickhouse 基于磁盘的字典
- python - 在 Python 3.7 中使用 for 循环重命名字典键
- python - 插值曲线末端所需的垂直线
- reactjs - 如何解决本机反应中的以下错误?
- javascript - 尝试遍历 DOM 节点,并获取文本格式的值
- javascript - Angular中mat-select中的垃圾箭头
- python - 如何根据测量维度设置opencv卡尔曼滤波器的测量矩阵【OpenCV+Python】
- angular - 带有过滤器项的角度删除