Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужно посчитать количество строк в запросе  [new]
alexya
Member

Откуда:
Сообщений: 450
Люди хелп сижу уже неделю с разными вопросами туплю по страшному

нужно посчитать количество строк в данном запросе


select distinct(r.idd),d.disc, r.csel, r.kredit, r.ikontr from rup r, disc d
where (r.csel = 1) and(r.idsg ='17101091') and (d.idd=r.idd)

union select distinct(r.idd), d.disc,r.csel, r.kredit, r.ikontr from rup r, iup i, disc d
where (i.idd = r.idd)and(i.ids ='17101091004') and (d.idd=r.idd)
27 авг 09, 08:32    [7584726]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
select count(*) from (
select distinct(r.idd),d.disc, r.csel, r.kredit, r.ikontr from rup r, disc d
where (r.csel = 1) and(r.idsg ='17101091') and (d.idd=r.idd)

union select distinct(r.idd), d.disc,r.csel, r.kredit, r.ikontr from rup r, iup i, disc d
where (i.idd = r.idd)and(i.ids ='17101091004') and (d.idd=r.idd)
) T
?
27 авг 09, 08:36    [7584736]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
alexya
Member

Откуда:
Сообщений: 450
такой вариант уже пробовала ни хрена у кого есть еще какие идеи?
27 авг 09, 08:39    [7584747]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
alexya
такой вариант уже пробовала ни хрена у кого есть еще какие идеи?


"Ни хрена" - это кол-во строк, который возвращает приведенный запрос, ошибка сервера или что-то другое?!
27 авг 09, 08:42    [7584756]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
alexya
Member

Откуда:
Сообщений: 450
ошибка в следующем ему не нравиться расоположение скобочек в данном запросе
27 авг 09, 08:49    [7584763]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
alexya
Member

Откуда:
Сообщений: 450
а точнее Сообщение 102, уровень 15, состояние 1, строка 7
Неправильный синтаксис около конструкции ")".
27 авг 09, 08:50    [7584767]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
rata
Member

Откуда:
Сообщений: 130
SELECT @@ROWCOUNT
?
27 авг 09, 08:51    [7584768]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
alexya
а точнее Сообщение 102, уровень 15, состояние 1, строка 7
Неправильный синтаксис около конструкции ")".


Для какого запроса и на какой версии сервера?!
27 авг 09, 08:52    [7584773]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
Букву Т в конце поставили? После последней скобочки? - это обязательно
27 авг 09, 08:52    [7584774]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
alexya
Member

Откуда:
Сообщений: 450
Deff, в следующий раз пишите сразу что Т обязательно и плиз объясните что дает Т и спасибо большое
27 авг 09, 08:54    [7584782]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
select r.idd, d.disc, r.csel, r.kredit, r.ikontr
from rup r
join disc d on r.idd=d.idd
where r.csel=1 and r.idsg='17101091'
union
select r.idd, d.disc, r.csel, r.kredit, r.ikontr
from rup r
join iup i on r.idd=i.idd
join disc d on r.idd=d.idd
where i.ids='17101091004';

PRINT @@ROWCOUNT;
27 авг 09, 08:54    [7584783]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc
27 авг 09, 08:59    [7584795]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Deff
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc
Это какой-такой "вьюхи"?
27 авг 09, 09:00    [7584801]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
alexya
Deff, в следующий раз пишите сразу что Т обязательно и плиз объясните что дает Т и спасибо большое


В следующий раз копипастите предложеный вариант решения полностью.
27 авг 09, 09:01    [7584807]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Deff
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc


Это называется derived table.
27 авг 09, 09:02    [7584808]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
iap
Deff
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc
Это какой-такой "вьюхи"?

Обернутый запрос я называю вьюхой. Мне так удобнее, чем говорить "обернутый запрос" или "вложеный запрос". Его можно заменять вьюхой или конструкцей "with [viewname] as ()". А что, настолько не понятно по контексту о чем идет речь?
27 авг 09, 09:09    [7584827]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
pkarklin
Deff
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc


Это называется derived table.
А по руски?
27 авг 09, 09:10    [7584832]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Deff
pkarklin
Deff
as T
полное написание, "as" можно опустить. Альяс вьюхи, тоже самое, что вы пишете d после таблицы disc


Это называется derived table.
А по руски?


Производная таблица.
27 авг 09, 09:19    [7584848]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
ветерочек
Member

Откуда: СПБ
Сообщений: 153
?
select count(*) from (
select distinct(r.idd) AS [тут должено быть название колонки] ,d.disc, r.csel, r.kredit, r.ikontr from rup r, disc d
where (r.csel = 1) and(r.idsg ='17101091') and (d.idd=r.idd)

union select distinct(r.idd), d.disc,r.csel, r.kredit, r.ikontr from rup r, iup i, disc d
where (i.idd = r.idd)and(i.ids ='17101091004') and (d.idd=r.idd)
) T

27 авг 09, 09:21    [7584854]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
ветерочек
Member

Откуда: СПБ
Сообщений: 153
ветерочек
?
select count(*) from (
select distinct(r.idd) AS [тут должено быть название колонки] ,d.disc, r.csel, r.kredit, r.ikontr from rup r, disc d
where (r.csel = 1) and(r.idsg ='17101091') and (d.idd=r.idd)

union select distinct(r.idd), d.disc,r.csel, r.kredit, r.ikontr from rup r, iup i, disc d
where (i.idd = r.idd)and(i.ids ='17101091004') and (d.idd=r.idd)
) T



ерунду написал..
27 авг 09, 09:23    [7584863]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
pkarklin
Производная таблица.
Спасибо. Ну если все так называют, то и я постараюсь включить в свой лексикон.
27 авг 09, 10:46    [7585273]     Ответить | Цитировать Сообщить модератору
 Re: Нужно посчитать количество строк в запросе  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Deff
Ну если все так называют, то и я постараюсь включить в свой лексикон.
FROM (Transact-SQL) по-русски
FROM (Transact-SQL) по-американски
дальше Ctrl+F и набрать derived_table
27 авг 09, 10:51    [7585312]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить