1
我查看了幾個相對的帖子,但我無法弄清楚如何將它們應用於我的情況。使用多個表和使用幾個SUM函數的SQL
SELECT [LeisureActivities].[dbo].[activities].[activityID],
[LeisureActivities].[dbo].[activities].[activityName],
[LeisureActivities].[dbo].[activities].[activityDate],
[LeisureActivities].[dbo].[activities].[activityPlaces],
[LeisureActivities].[dbo].[activities].[activityPrice],
SUM([LeisureActivities].[dbo].[bookings].[bookingPlaces]) AS 'bookingTotal',
SUM([LeisureActivities].[dbo].[tempbookings].[tempPlaces]) AS 'tempPlacesReserved'
FROM [LeisureActivities].[dbo].[activities],
[LeisureActivities].[dbo].[bookings],
[LeisureActivities].[dbo].[tempbookings]
WHERE ([LeisureActivities].[dbo].[activities].[activityID]=[LeisureActivities].[dbo].[bookings].[activityID]
AND [LeisureActivities].[dbo].[activities].[activityID]=[LeisureActivities].[dbo].[tempbookings].[tempActivityID])
AND [LeisureActivities].[dbo].[activities].[activityDate] > GetDate()
GROUP BY [LeisureActivities].[dbo].[activities].[activityID],
[LeisureActivities].[dbo].[activities].[activityName],
[LeisureActivities].[dbo].[activities].[activityDate],
[LeisureActivities].[dbo].[activities].[activityPlaces],
[LeisureActivities].[dbo].[activities].[activityPrice];
正如你可以看到這是指3個表,activities
,bookings
和tempbookings
。 tempbookings
表還包含一個tempReservedDate
字段,它包含一個datetime數據類型,我需要SUM計算tempPlaces僅用於SUM那些將來有tempReservedDate
的記錄,過去那些只是忽略的記錄(類似於我已經在控制活動通過僅顯示具有未來日期的活動)SUM還需要將這些活動分組。
我相信我需要把我的「WHERE」部分類似
[LeisureActivities].[dbo].[tempbookings].[tempReservedDate] > GetDate()
我只是不知道在哪裏把它,使其不將其應用於我的整個查詢,因爲它只需要工作申請到tempPlaces
。
我希望我已經設法解釋我的意思,但請問是否沒有意義,雖然我知道你經常不會格式化它(我喜歡[]等),但對於使用這些查詢的程序,必須以這種特殊格式完成。
任何幫助表示讚賞,謝謝。
感謝您的回覆 - 這是一個好的開始,但是如果當前在該特定活動的tempbook表中沒有關於actvitiy的記錄,則活動記錄根本不會顯示。該查詢應該返回3個不同的活動,然後僅顯示其中一個活動的「FutureTempPlaces」,因爲這是目前唯一有一個活動記錄記錄的活動 - 對於之前未提及的內容而抱歉。 – user2195482 2013-03-21 15:01:26