какой запрос использовать в этой ситуации - sqlServer - PullRequest
0 голосов
/ 30 мая 2019

У меня есть 2 таблицы:

Информация:

enter image description here

Оценка:

enter image description here

Какой запрос я могу использовать, чтобы получить этот результат?(Столбец месяцы и годы показывают счет ребят в июне-2019 enter image description here

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Попробуйте следующее:

select info.id, info.name,info.age, sum(case when MONTH(convert(datetime,score.date,5)) = 6 and Year(convert(datetime,score.date,5)) = 2019 then score else 0 end) as monthS,sum(case when MONTH(convert(datetime,score.date,5)) = 6 and Year(convert(datetime,score.date,5)) = 2019 then score else 0 end) as  yearS
from info
inner join score
on info.id = score.id
group by info.id, info.name,info.age

OR

select info.id, info.name,info.age, sum(isnull(score,0)) as monthS,sum(isnull(score,0)) as  yearS
from info
left join
(
    select * from score
    where MONTH(convert(datetime,score.date,5)) = 6 and Year(convert(datetime,score.date,5)) = 2019
 ) as s
on info.id = s.id
group by info.id, info.name,info.age

Пример работы здесь .

0 голосов
/ 30 мая 2019

Вы могли бы сделать что-то вроде этого

SELECT 
    Info.id
    , Info.Name
    , Info.age
    , DATEDIFF(MONTH, CAST(score.date AS datetime), GETDATE()) AS Moths
    , DATEDIFF(YEAR, CAST(score.date AS datetime), GETDATE()) AS Years
FROM 
    Info 
    INNER JOIN Score
    ON Info.id = Score.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...