SQL使用where子句从两个表中划分计数

时间:2015-08-25 16:33:05

标签: sql

我正在尝试计算[供应商表]中的记录,其中supplierid = 2 并在[详细信息表]中除以计数记录,其中address = az

两个表的公共字段是carid = cardid

非常感谢你!

2 个答案:

答案 0 :(得分:0)

我想要做一点点。

您需要加入两个表格,在where中应用过滤器,然后计算。

SELECT count(*)
FROM 
   [Supplier table]  s INNER JOIN 
   [detail table] d on s.carid= d.carid
WHERE s.supplierid=2 
and d.address=az

这可能更通用。该组全部为s.supplierid并计算每个组

SELECT s.supplierid, count(*)
FROM 
   [Supplier table]  s INNER JOIN 
   [detail table] d on s.carid= d.carid
WHERE d.address=az
GROUP BY s.supplierid

答案 1 :(得分:0)

也许这对你有用。将详细信息的计数选择到子查询表中,然后您可以使用结果分成主表计数。

SELECT  s.carid, COUNT(*), detail_table.DetailCount, COUNT(*) / detail_table.DetailCount
     FROM supplier s,
    (SELECT  d.carid,  COUNT(*) DetailCount
        FROM details d
        WHERE d.address=az
        GROUP BY d.carid) detail_table
     WHERE  s.supplierid=2 and s.carid=detail_table.carid
     GROUP BY s.carid, detail_table.DetailCount