1
我正在跟踪卖家在亚马逊上销售的产品价格是否低于某个特定价格。我在数据库中存储产品,销售商和违规行为。我试图显示在24小时内违规的卖家人数。我没有显示违规卖家的数量,而是收到违规总数。使用SELECT DISTINCT COUNT获取数据库中的错误金额
ViolationsRepository.php
public function countNumberOfSellersInViolationsForVendorInLast24Hours($vendorId)
{
$select = "SELECT DISTINCT COUNT(
CASE
WHEN v.source = 'amazon' THEN
(SELECT DISTINCT s.id
FROM seller_info_amazon AS sai
LEFT JOIN sellers_amazon AS sa ON sa.amazon_id = sai.id
LEFT JOIN sellers AS s ON sa.seller_id = s.id
WHERE sai.unique_id = v.seller_id_amazon AND s.id IS NOT NULL
LIMIT 1)
WHEN v.source = 'ebay' THEN
(SELECT s.id
FROM sellers AS s
WHERE s.id = v.seller_id_ebay
LIMIT 1)
WHEN v.source = 'google' THEN
(SELECT s.id
FROM sellers AS s
WHERE s.id = v.seller_id_google
LIMIT 1)
END)
FROM
violations AS v
";
$timeLimit = new \DateTime('24 hours ago');
$where = " WHERE v.vendor_id = :vendorId AND v.last_scout_date >= :timeLimit \n";
$query = $this->getEntityManager()->getConnection()->prepare($select . $where);
$query->bindValue(':vendorId', $vendorId);
$query->bindValue(':timeLimit', $timeLimit->format("Y-m-d h:i:s"));
$query->execute();
return $query->fetchColumn();
}
sellers_amazon TABLE
seller_id amazon_id
侵犯TABLE
id vendor_id seller_id_amazon last_scout_date source
seller_info_amazonŤ ABLE
id unique_id name
卖家表
id originating_vendor_id name
显示您的数据库表结构 – CodeGodie
@CodeGodie已更新 – RKlina