我确定这是重复但我找不到答案:
SQLITE 查询问题
表:
关系:客户有多个订单
成功条件:
获取订单
的客户数量查询:
SELECT COUNT(Client.id) AS count
FROM Client
INNER JOIN Order
ON Order.id = Client.id
AND Order.storeId = Client.storeId // This is because Clients have many stores
WHERE
AND Order.id IS NOT NULL
AND Order.date BETWEEN '12-09-2016 16:00:00' AND '13-09-2016 16:00:00'
问题
如果客户1,商店1有3个订单,则查询应返回 1 ,因为该客户端是同一个商店,而 BUT 正在返回 3 意思是不计算订单的客户,而是订单本身
解决方案? 请记住,这是SQLite,并且正在Android 4.1.1中使用,因此某些SQLite函数可能无法使用
答案 0 :(得分:2)
内部查询获取所有订单的客户。外部查询计算这些记录
status="info"
更简单的版本是计算不同(select count(*)
from
(
SELECT Client.id
FROM Client
INNER JOIN Order ON Order.id = Client.id
AND Order.storeId = Client.storeId
WHERE Order.date BETWEEN '12-09-2016 16:00:00' AND '13-09-2016 16:00:00'
GROUP BY Client.id
) tmp
)客户端的数量
distinct