Я удаляю атрибут, который я назвал B_Price_per_hour, так как он должен был быть изначально извлечен, но он испортил один из моих кодов, поэтому мне пришлось воссоздать его, и я не мог понять его правильно.
SELECT c.Customer_ID, SUM(hours_of_use * C_price_per_hour) AS Total_Sales, COUNT(b.Booking_ID) AS Total_Visits
FROM CafeCustomers c, Booking b, Computer AS cc, BookingToComputer AS bc
WHERE c.Customer_ID = b.Customer_ID AND b.Booking_ID = bc.Booking_ID AND cc.Computer_ID = bc.Computer_ID
GROUP BY c.Customer_ID
ORDER BY SUM(hours_of_use * C_Price_per_hour) DESC;
SELECT c.Customer_ID, SUM(hours_of_use * B_Price_per_hour) AS Total_Sales, COUNT(Booking_ID) AS Total_Visits
FROM CafeCustomers c, Booking b
WHERE c.Customer_ID = b.Customer_ID
GROUP BY c.Customer_ID
ORDER BY SUM(hours_of_use * B_Price_per_hour) DESC;
Запрос, который включает BookingToComputer и Computer, показывает неверный результат функции count ().
Результаты первого запроса:
https://imgur.com/aMYHKUG
Результаты второго (желаемого результата) запроса:
https://imgur.com/KfaGAge
Создал это также и все еще имеет ту же проблему:
SELECT cc.Customer_ID, SUM(hours_of_use * C_price_per_hour) AS Total_Sales, COUNT(b.Booking_ID) AS Total_Visits
FROM CafeCustomers AS cc
INNER JOIN Booking AS b ON b.Customer_ID = cc.Customer_ID
INNER JOIN BookingToComputer AS bc ON bc.Booking_ID = b.Booking_ID
INNER JOIN Computer AS c ON c.Computer_ID = bc.Computer_ID
GROUP BY cc.Customer_ID;
Таблица информации:
CREATE TABLE [dbo].[Booking](
[Booking_ID] [int] NOT NULL,
[B_price_per_hour] [int] NOT NULL, (Removing this one)
[Customer_ID] [int] NOT NULL, )
CREATE TABLE [dbo].[BookingToComputer](
[Booking_ID] [int] NOT NULL,
[Computer_ID] [int] NOT NULL, )
CREATE TABLE [dbo].[CafeCustomers](
[Customer_ID] [int] NOT NULL,)
CREATE TABLE [dbo].[Computer](
[Computer_ID] [int] NOT NULL,
[C_price_per_hour] [int] NOT NULL,)
INSERT INTO Booking VALUES (1, 14, 1)
INSERT INTO Booking VALUES (2, 5, 1)
INSERT INTO Booking VALUES (3, 12, 2)
INSERT INTO Booking VALUES (4,7,3)
INSERT INTO Booking VALUES (5, 12, 2)
INSERT INTO Booking VALUES (6, 7, 5)
INSERT INTO Computer VALUES (1, 7)
INSERT INTO Computer VALUES (2, 7)
INSERT INTO Computer VALUES (3, 7)
INSERT INTO Computer VALUES (4, 7)
INSERT INTO Computer VALUES (5, 7)
INSERT INTO Computer VALUES (6, 7)
INSERT INTO Computer VALUES (7, 5)
INSERT INTO Computer VALUES (8, 5)
INSERT INTO BookingToComputer VALUES (1,1)
INSERT INTO BookingToComputer VALUES (1,2)
INSERT INTO BookingToComputer VALUES (2,5)
INSERT INTO BookingToComputer VALUES (3,3)
INSERT INTO BookingToComputer VALUES (3,8)
INSERT INTO BookingToComputer VALUES (4,7)
INSERT INTO BookingToComputer VALUES (5,6)
INSERT INTO BookingToComputer VALUES (6,4)
INSERT INTO CafeCustomers VALUES (1)
INSERT INTO CafeCustomers VALUES (2)
INSERT INTO CafeCustomers VALUES (3)
INSERT INTO CafeCustomers VALUES (4)
INSERT INTO CafeCustomers VALUES (5)