4 테이블 Transaction
, Merchant
, onlineuser
및 onlineuserhistory
이 있습니다. 사용자가 onlinesite
에 들어가면 onlineuser
테이블에 해당 사용자에 대한 행 하나를 만들고 entry_date
및 expiry_date
으로 만듭니다. 그가 사이트를 방문 할 때마다 우리는 onlineuserhistory
테이블에 항목을 만듭니다. 따라서 2011 년 11 월 1 일부터 2011 년 11 월 15 일까지는 onlineuser
테이블에 하나의 레코드가 있고 그가 가질 수있는 테이블은 onlineuserhistory
개가 있습니다 5 번 방문했다. 이제 2011 년 11 월 16 일에 사이트에 올라온 것처럼 달이 올 때 onlineuser
은 해당 판매자 및 사용자에 대해 하나의 레코드 만 존재할 수 있으므로 날짜를 변경합니다.데이터가 두 번째 테이블에 있는지 확인하십시오.
신고 목적으로 적어도 하나의 레코드가 onlineuserhistory
테이블에 있는지 확인해야합니다. 일찌기 쓴 사람은 왼쪽에 onlieuser
테이블에 합류하여 썼습니다.
SELECT COUNT(*) AS TotalNumPurchases
FROM Transactions t
INNER JOIN Merchants m ON m.MerchantID = t.FromEntityID AND
m.StatusID = 8 AND m.IsHidden = 0
INNER JOIN MerchantLocations ml ON m.MerchantID = ml.MerchantID
INNER JOIN Accounts AS a on t.ToEntityID = a.AccountID
LEFT JOIN onlineuser au ON m.MerchantID = au.MerchantID and
a.ManagerUserID = au.UserID
a.ManagerUserID = au.UserID
WHERE t.ToEntityTypeID = 5
AND t.TransactionDate BETWEEN '2016-11-11 07:00:00' AND '2016-11-15 06:59:59'
내가 확인 onlineuserhistory
테이블에 체크를 할 수 있도록 적어도 하나 개의 기록을 해당 날짜 범위에 존재하고, 하나 개 이상의 기록이 존재하는 경우 또한 내가 한 기록을 고려해야 할 경우, 나는이 업데이트 어떻게 그에 대한.
왜이 체크를해야합니까? 거래가있는 경우 해당 기간 동안 온라인 상태 여야합니다. – Barmar
onlineuserhistory에서 하위 쿼리'select count (*)를 추가 할 수 있습니다. 'xxx'와 'yyy'' 사이의 날짜 – Barmar
하위 쿼리는 어디에 추가합니까? 가입 안에? – user7142609