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