MySQL вопросы поиска данных - PullRequest
0 голосов
/ 27 ноября 2010

арендный стол:

CREATE TABLE RENTAL
(
TransactionNo int NOT NULL AUTO_INCREMENT,
MemberID int NOT NULL, 
ItemNo char(3) NOT NULL,
RentalEmployeeID varchar(30),
ReturnEmployeeID varchar(30), 
Checkout_date DATE, 
Checkin_date DATE,
Return_date DATE,
ItemQuantity int(11) NOT NULL,
TotalPrice DOUBLE(10,2) NOT NULL,
ItemFee DOUBLE(10,2),
PRIMARY KEY(TransactionNo),
FOREIGN KEY(MemberID) REFERENCES Member(MemberID),
FOREIGN KEY(ItemNo) REFERENCES Item(Itemno),
FOREIGN KEY(RENTALEMPLOYEEID) REFERENCES Employee(EmployeeID),
FOREIGN KEY(RETURNEMPLOYEEID) REFERENCES Employee(EmployeeID)
)

Однако я пытаюсь получить запрос для всех клиентов, которые купили как минимум 2 товара в один и тот же день; я все еще не могу этого сделать. Для этого нужно вложенное предложение?

мое заявление:

SELECT m.MemberID, r.`checkout_date`, SUM(r.itemquantity)
FROM RENTAL AS r, MEMBER AS m
WHERE r.MemberID = m.MemberID
GROUP BY  m.MemberID, r.`checkout_date`
HAVING SUM (r.itemquantity) > 1

Однако это новое утверждение даст мне то, что я хочу; поскольку информация об аренде не требуется (NULL), она также суммирует все возвращаемые товары, а не только аренду.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010
              group by memberid, checkoutdate having count(transactionid) > 1
0 голосов
/ 27 ноября 2010

Вам не нужно вложенное предложение - GROUP BY делает свое дело.

SELECT m.MemberID, r.`checkout_date`, COUNT(r.itemno)
FROM RENTAL AS r, MEMBER AS m
WHERE r.MemberID = m.MemberID
GROUP BY r.MemberID, `r.checkout_date`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...