Я пытаюсь записать, Сколько я вводил? запрос на Стеке* Проводник Данных.
Изменение существующего запроса получило меня настолько далеко:
-- How much did I type?
DECLARE @UserId int = ##UserId##
select sum(len(Body)) AS 'Posts' from posts where owneruserid = @UserId,
select sum(len(Text)) AS 'Comments' from comments where userid = @UserId,
(select sum(len(Body)) from posts where owneruserid = @UserId +
select sum(len(Text)) from comments where userid = @UserId) AS 'Total'
Я ожидаю три столбца и одна строка, что-то вроде этого:
Posts Comments Total
1234 5678 6912
Но существует некоторая проблема синтаксиса, из-за которого я добираюсь:
Ошибка: Неправильный синтаксис рядом''. Неправильный синтаксис рядом''. Неправильный синтаксис около ключевого слова 'выбор'. Неправильный синтаксис рядом')'.
Каков правильный синтаксис для этого?
Вот рабочий запрос:
DECLARE @UserId int;
set @UserID = 4;
Select *, (Posts+Comments) as Total
FROM
(select sum(len(Body)) AS Posts FROM posts where owneruserid = @UserId ) p,
(select sum(len(Text)) AS Comments FROM comments where userid = @UserId ) c
-- How much did I type? /* If this is to be a parameter from your app, you don't need to declare it here*/ DECLARE @UserId int; set @UserID = 4; Select *, (Posts+Comments) as Total FROM (select sum(len(Body)) AS Posts FROM posts where owneruserid = @UserId ) p, (select sum(len(Text)) AS Comments FROM comments where userid = @UserId ) c
Я бы сделал это так ...
declare @ownerId int
set @ownerId = 1
declare @Posts bigint
declare @Comments bigint
select
@Posts = sum(len(Body))
from Posts where owneruserid = @ownerId
select
@Comments = sum(len(Text))
from Comments where userid = @ownerId
select @Posts as 'Posts', @Comments as 'Comments', @Posts + @Comments as 'Total'
Привет, ваша проблема в том, что у вас есть 3 утверждения, сцепленные с 1 утверждением - просто сделайте одно утверждение из если: как
select sum(len(Body)) AS 'Posts', sum(len(Text)) AS 'Comments' , sum(len(Body)) + sum(len(Text)) AS Total
from posts t1 inner join comments t2 on t1.owneruserid = t2.userid
where t1.owneruserid = @UserId
Надеюсь, я набрал правильно ...