Я написал два запроса для SQL Server, один для предоставления «Итого выручки» и один для «Итога перевозчика».Я подтвердил, что оба работают правильно.Теперь я пытаюсь включить все эти данные в набор результатов с помощью следующего запроса.
select
a.ctripnumber, 'Revenue Total', 'Carrier Total'
from
(
(select r.ctripnumber, sum(Revenue_Subtotal) as 'Revenue Total'
from
(select
r.ctripnumber, r.cmethod, sum(r.curevenue) as Revenue_Subtotal
from
revenuedtl r
where
r.cmethod in (select distinct r.cmethod from revenuedtl r)
--and r.ctripnumber = '324198'
group by
r.ctripnumber, r.cmethod) r
group by
r.ctripnumber),
(select p.ctripnumber, sum(Carrier_Subtotal) as 'Carrier Total'
from
(select
p.ctripnumber, p.cmethod, sum(p.curevenue) as Carrier_Subtotal
from
payrolldtl p
where
p.cmethod in (select distinct p.cmethod from payrolldtl p)
--and p.ctripnumber = '324198'
group by
p.ctripnumber, p.cmethod) p
group by p.ctripnumber)) a
where
p.ctripnumber = r.ctripnumber
group by
a.ctripnumber
Однако я получаю следующие ошибки:
Msg102, уровень 15, состояние 1, строка 11
неправильный синтаксис рядом с ','.
Msg 102, уровень 15, состояние 1, строка 20
неправильный синтаксис рядом с ')'.
Кажется, что ',' должно быть правильным, так как я пытаюсь получить результаты из трех столбцов.Я проверил ')' и не вижу осиротевших.
Я попробовал следующее, используя внутреннее соединение, но я получаю несколько разных ошибок
select
r.ctripnumber, 'Revenue Total', 'Carrier Total'
(select r.ctripnumber, sum(Revenue_Subtotal) as 'Revenue Total'
from
(select r.ctripnumber,r.cmethod,sum(r.curevenue) as Revenue_Subtotal
from revenuedtl r
where r.cmethod in (select distinct r.cmethod from revenuedtl r)
group by r.ctripnumber, r.cmethod) r
group by r.ctripnumber)
inner join
(select p.ctripnumber,sum(Carrier_Subtotal) as 'Carrier Total'
from
(select p.ctripnumber,p.cmethod,sum(p.curevenue) as Carrier_Subtotal
from payrolldtl p
where p.cmethod in (select distinct p.cmethod from payrolldtl p)
group by p.ctripnumber, p.cmethod) p
group by p.ctripnumber) on r.ctripnumber = p.ctripnumber
Ошибки, которые яполучить это время:
Сообщение 156, Уровень 15, Состояние 1, Строка 9
Неверный синтаксис рядом с ключевым словом "внутренний"
Сообщение 156, Уровень 15, Состояние1,Строка 17
Неверный синтаксис рядом с ключевым словом 'on'
Разъяснение
Есть два запроса, которые работают хорошо, один, который получает номера командировок и доход, а другой -номера поездок и стоимость доставки.
Запрос 1
select r.ctripnumber, sum(Revenue_Subtotal) as 'Revenue Total'
from
(select r.ctripnumber, r.cmethod, sum(r.curevenue) as Revenue_Subtotal
from revenuedtl r
where r.cmethod in
(select distinct r.cmethod from revenuedtl r)
group by r.ctripnumber,r.cmethod) r
group by r.ctripnumber
Частичные результаты:
ctripnumber Revenue Total
160837 682.00
232813 1151.75
163973 335.00
249132 3024.00
Запрос 2
select p.ctripnumber, sum(Carrier_Subtotal) as 'Carrier Total'
from
(select p.ctripnumber, p.cmethod, sum(p.curevenue) as Carrier_Subtotal
from payrolldtl p
where p.cmethod in
(select distinct p.cmethod from payrolldtl p)
group by p.ctripnumber, p.cmethod) p
group by p.ctripnumber
Частичные результаты:
ctripnumber Carrier Total
206266 48.00
111099 225.00
107283 206.25
6558 250.00
Теперь, когда у меня есть эти запросы, я хочу объединить результаты, поэтому я написал следующее:
select
a.ctripnumber, 'Revenue Total', 'Carrier Total'
from
(
(select r.ctripnumber, sum(Revenue_Subtotal) as 'Revenue Total'
from
(select r.ctripnumber, r.cmethod, sum(r.curevenue) as Revenue_Subtotal
from revenuedtl r
where r.cmethod in
(select distinct r.cmethod from revenuedtl r)
group by r.ctripnumber,r.cmethod) r
group by r.ctripnumber),
(select p.ctripnumber, sum(Carrier_Subtotal) as 'Carrier Total'
from
(select p.ctripnumber, p.cmethod, sum(p.curevenue) as Carrier_Subtotal
from payrolldtl p
where p.cmethod in
(select distinct p.cmethod from payrolldtl p)
group by p.ctripnumber, p.cmethod) p
group by p.ctripnumber)
) a
where p.ctripnumber = r.ctripnumber
group by a.ctripnumber
Я получаю следующие ошибки:
Сообщение 102, Уровень 15, Состояние 1, Строка 12 Неправильный синналог рядом с ','.
Сообщение 102, уровень 15, состояние 1, строка 21 Неверный синтаксис рядом с ')'.