SQL:计算一个 table 的不同值并按另一个分组

SQL: Count distinct values from one table and group by another one

这是我第一次来这里。经过长时间的研究,我无法找到解决我的(相对简单的)问题的方法。

我有 2 个 table:

table"Product"有以下数据:

cod_product /  cod_franchise
    2       /        1
    2       /        1
    3       /        3

table "Item" 有以下行:

  id_item   /    cod_product
    1       /        1
    2       /        2
    3       /        2

我需要确定每个特许经营权在 "Item" table.

中出现的次数(通过其各自的 cod_product)

因此我 运行 以下 SQL 代码:

SELECT P.COD_FRANCHISE, COUNT (I.COD_PRODUCT) AS 'QUANTITY'
FROM PRODUCT P
INNER JOIN ITEM I ON P.COD_PRODUCT = I.COD_PRODUCT
GROUP BY P.COD_FRANCHISE

但我使用 MS Access 得到的只是一条 "TYPE MISMATCH IN EXPRESSION" 错误消息。

有人可以帮我吗?

最佳,

我已经尝试了您的查询(copy/paste 代码),它按原样完美运行。

我的猜测是您的 table 字段之一设置为与其他字段不同的数据类型。在创建模式下打开每个 table 并将所有数据类型更改为数字或文本,只要它们都相同即可。

如果您不知道how/don不想更改数据类型,您可以使用此查询:

SELECT P.COD_FRANCHISE*1, COUNT(I.COD_PRODUCT) AS ['QUANTITY'] FROM PRODUCT AS P INNER JOIN ITEM AS I ON P.COD_PRODUCT*1=I.COD_PRODUCT*1 GROUP BY P.COD_FRANCHISE;

随处放置的“*1”将强制 Access 更改您的数据类型。