Я довольно новичок в SQL и, пожалуйста, рассказываю со мной, пока я объясняю это, потому что это довольно сложно объяснить.Ошибка SQL Присоединиться к проблеме
У меня есть 3 таблицы:
Trip Promotion Promotion Cost.
1 ---- M 1 --------- M
Выборочные данные включают в себя:
TripID TripName Date
XYZ123 Hawaii 09/06/09
YTU574 Japan 09/09/09
GHR752 US 11/07/09
PromotionID TripID Name
1 XYZ123 Poster
2 XYZ123 Brochure
3 GHR752 TV ad
CostID PromotionID Cost
1 1 $50
2 1 $100
3 1 $120
4 3 $2000
5 2 $500
Я пытаюсь построить запрос следующим образом:
TripID Number of Promotions Total Cost
XYZ123 2 $770
GHR752 1 $2000
Что у меня есть это :
SELECT
Trip.TripID, Count(Trip.TripID) AS [Number Of Promotions], Sum(PromotionCost.Cost) AS SumOfCost
FROM
Trip
INNER JOIN
(Promotion
INNER JOIN
PromotionCost ON Promotion.PromotionID = PromotionCost.PromotionID
) ON Trip.TripID = Promotion.TripID
GROUP BY
Trip.TripID;
И это дает мне что-то вроде этого:
TripID Number of Promotions Total Cost
XYZ123 4 $770
GHR752 1 $2000
я не уверен, почему количество Promotions перепутались, как, что для первого (XYZ123). Кажется, что как-то РЕГИСТРИРУЙТЕСЬ влияет на это, потому что, если я использую это:
SELECT
Trip.TripID, Count(Trip.TripID) AS [Number Of Promotions],
FROM
Trip
INNER JOIN
Promotion ON Trip.TripID = Promotion.TripID
GROUP BY
Trip.TripID;
Это дает мне правильное количество поощрений, которое только 2.
Любая помощь?
Извините, я действительно новичок в этом, но как мне это сделать? –
Вам необходимо установить SQL Server Express (убедитесь, что вы также установили SQL Server Management Studio), затем создайте новую базу данных, создайте нужные вам таблицы и, наконец, создайте представление. Посмотрите здесь: http://msdn.microsoft.com/en-us/library/bb934498.aspx – Konamiman