2015-02-09 4 views
0
Select Count(*), 
(select Name from Tours Where Tours.ID = TourBooking.TourID) as Name, 
(select Url from Tours Where Tours.ID = TourBooking.TourID) as Url, 
(select Top 1 Name from TourImages Where TourImages.TourID = TourBooking.TourID Order By ID Asc) as ImageName, 
(Select Duration +' '+ CASE WHEN DurationType = 'd' THEN 'Day(s)' WHEN DurationType = 'h' THEN 'Hour(s)' END from Tours Where Tours.ID = TourBooking.TourID)as Duration, 
(select replace(replace('<a> Adult(s) - <c> Children','<a>', sum(case when [Type] = 1 then 1 else 0 end)      ), 
'<c>', sum(case when [Type] = 2 then 1 else 0 end)) from TourPerson Where TourPerson.BookingId = TourBooking.ID) as TotalPassengers, 
StartDate,CreatedDate as BookingDate,ID as BookingID,[Status],ServicePrice 
from TourBooking 

Как получить счет от этого запросаполучить счет от запроса

ответ

0

Как получить счет от этого запроса

Я думаю, что вы пытаетесь , чтобы сделать это с первым заявлением COUNT(*). Вместо этого вы можете попробовать вложить весь ваш запрос и получить счет таким образом.

SELECT COUNT(innerTable.*), innerTable.* FROM (
SELECT 
(select Name from Tours Where Tours.ID = TourBooking.TourID) as Name, 
(select Url from Tours Where Tours.ID = TourBooking.TourID) as Url, 
(select Top 1 Name from TourImages Where TourImages.TourID = TourBooking.TourID Order By ID Asc) as ImageName, 
(Select Duration +' '+ CASE WHEN DurationType = 'd' THEN 'Day(s)' WHEN DurationType = 'h' THEN 'Hour(s)' END from Tours Where Tours.ID = TourBooking.TourID)as Duration, 
(select replace(replace('<a> Adult(s) - <c> Children','<a>', sum(case when [Type] = 1 then 1 else 0 end)      ), 
'<c>', sum(case when [Type] = 2 then 1 else 0 end)) from TourPerson Where TourPerson.BookingId = TourBooking.ID) as TotalPassengers, 
StartDate,CreatedDate as BookingDate,ID as BookingID,[Status],ServicePrice 
from TourBooking) as innerTable 
+0

Столбец «innerTable.Name» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – Mike

+0

@Mike Тогда похоже, что ваш внутренний запрос не работает. Вероятно, это связано с функциями 'sum', которые вы используете. Вытащите их и посмотрите, работает ли это. – LCIII

Смежные вопросы