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

Откуда:
Сообщений: 17
Запрос: Display every subscriber and the number of films he has rented of each type each year(thriller,comedy,etc.)

create view TypesForAllYears as
select distinct LEFT(s.Subscriber_LastName,12)+' '+LEFT(s.Subscriber_FirstName,10) as Name,
      ft.FilmType_Name as FilmType, sum(rd.RentQuantity) as QuantityOfRents, year(rd.RentDate)as YearRent
from Subscriber s, FilmType ft, RentDetails rd, FilmCopy fc, Film f, ToBeOfType tb
where s.Subscriber_ID=rd.Subscriber_ID
  and rd.FilmCopy_Id=fc.FilmCopy_Id
  and fc.Film_ID=f.Film_ID
  and f.Film_Id=tb.Film_Id
  and tb.FilmType_Id=ft.FilmType_Id
group by s.Subscriber_LastName,s.Subscriber_FirstName,ft.FilmType_Name,rd.RentDate
order by Name

select Name, SUM(QuantityOfRents) as NumbersFilmsTypes,YearRent
from TypesForAllYears
group by Name,YearRent
order by Name
15 ноя 11, 14:31    [11599564]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Я вакансии на аглицком принципиально не читаю
15 ноя 11, 14:36    [11599650]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
запрос: надо показать для каждого клиента количество фильмов каждого жанра ежегодно.
(сейчас перепроверила- селект не работает как надо...)
15 ноя 11, 14:46    [11599751]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Viola5
(сейчас перепроверила- селект не работает как надо...)
Т.е. как запрос работает сейчас и как надо, чтобы работал, предлагается придумать?
15 ноя 11, 14:48    [11599764]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
Гавриленко Сергей Алексеевич,
если есть возможность испавить - буду благодарна.
Главная задача у меня научиться вместо View использовать subselect...
15 ноя 11, 15:02    [11599960]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Glory
Member

Откуда:
Сообщений: 104751
Viola5
Главная задача у меня научиться вместо View использовать subselect...

select ... from (select ... from (select ... from ....) as a ) as b

Вот только хорошо бы еще научиться понимать, что вы хотите написать
15 ноя 11, 15:04    [11599987]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
перепроверила - запрос работает таки правильно, добавила имя жанра:
select Name, SUM(QuantityOfRents) as NumbersFilmsTypes,FilmType,YearRent
from TypesForAllYears
group by Name,YearRent,FilmType
order by Name
Теперь только от представления избавиться бы...
15 ноя 11, 15:07    [11600022]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
Glory,
Пробовала так, вы написали, выдает либо бесконечные ошибки, либо совершенно пустую таблицу. должно получится вот это (но с использованием подзапроса вместо представления):
Baraq        Naama     	drama                                             	1	2008
Bik          Alexander 	fiction                                           	1	2009
Daron        Yoav      	drama                                             	1	2010
Daron        Yoav      	drama                                             	3	2010
Gilinski     Itay      	comedy                                            	1	2011
Gilinski     Itay      	detective                                         	3	2011
Gilinski     Itay      	drama                                             	1	2011
Gilinski     Itay      	drama                                             	2	2011
Gilinski     Itay      	drama                                             	3	2010
Gilinski     Itay      	drama                                             	3	2011
Gilinski     Itay      	fiction                                           	1	2011
Gilinski     Itay      	mistic                                            	1	2011
Gilinski     Itay      	porno                                             	3	2011
Gilinski     Itay      	thriller                                          	3	2011
Gitler       Arnold    	adventures                                        	1	2008
Gitler       Arnold    	comedy                                            	1	2008
Gitler       Arnold    	drama                                             	1	2008
Kulik        Andre     	drama                                             	3	2008
Kulik        Andre     	drama                                             	3	2011
Kulik        Andre     	porno                                             	1	2007
Kulik        Andre     	porno                                             	1	2011
Lavrov       Kiril     	adventures                                        	1	2011
Lavrov       Kiril     	comedy                                            	3	2011
Lavrov       Kiril     	drama                                             	1	2011
Lavrov       Kiril     	mistic                                            	3	2011
Lavrov       Kiril     	porno                                             	3	2011
Lavrov       Kiril     	thriller                                          	1	2011
Lavrova      Natalya   	comedy                                            	3	2011
Lavrova      Natalya   	detective                                         	1	2010
Lavrova      Natalya   	drama                                             	3	2011
Lavrova      Natalya   	fiction                                           	3	2010
Lavrova      Natalya   	fiction                                           	3	2011
Lavrova      Natalya   	mistic                                            	3	2011
Lavrova      Natalya   	thriller                                          	1	2010
Nizan        Gila      	adventures                                        	1	2011
Nizan        Gila      	adventures                                        	2	2011
Nizan        Gila      	comedy                                            	1	2011
Nizan        Gila      	comedy                                            	2	2011
Nizan        Gila      	mistic                                            	2	2011
Nizan        Gila      	porno                                             	1	2010
Shafir       Mirav     	adventures                                        	1	2011
Shafir       Mirav     	comedy                                            	1	2011
Shafir       Mirav     	drama                                             	1	2011
Shafir       Mirav     	drama                                             	3	2011
Sharabi      Anat      	adventures                                        	3	2011
Sharabi      Anat      	comedy                                            	3	2010
Sharabi      Anat      	drama                                             	1	2010
Sharabi      Anat      	drama                                             	3	2010
Sharabi      Anat      	drama                                             	3	2011
Sharabi      Anat      	fiction                                           	1	2011
Sharabi      Anat      	fiction                                           	3	2010
Sharabi      Anat      	mistic                                            	3	2010
Sharabi      Anat      	porno                                             	1	2011
15 ноя 11, 15:10    [11600050]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Glory
Member

Откуда:
Сообщений: 104751
Viola5
Пробовала так, вы написали, выдает либо бесконечные ошибки,

Ошибки надо читать
15 ноя 11, 15:10    [11600061]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
Glory,спасибо
15 ноя 11, 15:21    [11600184]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Glory
Member

Откуда:
Сообщений: 104751
Viola5
Sharabi      Anat      	mistic                                            	3	2010
Sharabi      Anat      	porno                                             	1	2011

Интересно, это реальные данные ? )
15 ноя 11, 15:24    [11600215]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
Glory,да нет: не совсем реальные :-)
15 ноя 11, 15:50    [11600496]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
aleks2
Guest
select Name, SUM(QuantityOfRents) as NumbersFilmsTypes,YearRent
from 
(
select distinct LEFT(s.Subscriber_LastName,12)+' '+LEFT(s.Subscriber_FirstName,10) as Name,
      ft.FilmType_Name as FilmType, sum(rd.RentQuantity) as QuantityOfRents, year(rd.RentDate)as YearRent
from Subscriber s, FilmType ft, RentDetails rd, FilmCopy fc, Film f, ToBeOfType tb
where s.Subscriber_ID=rd.Subscriber_ID
  and rd.FilmCopy_Id=fc.FilmCopy_Id
  and fc.Film_ID=f.Film_ID
  and f.Film_Id=tb.Film_Id
  and tb.FilmType_Id=ft.FilmType_Id
group by s.Subscriber_LastName,s.Subscriber_FirstName,ft.FilmType_Name,rd.RentDate
) as
TypesForAllYears
group by Name,YearRent
order by Name

1. Если вы осознаете, что группировка "distinct"-строк так же бесполезна, как и боязнь View.
2. Научитесь писать INNER JOIN.
3. И не совать внутрь группировки, то что можно прихерачить после группировки.
4. Цены вам не будет
15 ноя 11, 15:55    [11600555]     Ответить | Цитировать Сообщить модератору
 Re: Помогите заменить View на SubSelect  [new]
Viola5
Member

Откуда:
Сообщений: 17
aleks2,
Спасибо вам огромное!!!
Пошла разбираться (надо ведь все понять, а не просто переписать) и учиться быть бесценной...
15 ноя 11, 16:11    [11600717]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить