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

Откуда:
Сообщений: 19
Есть таблица сеанс, с столбцами кинофильмы и дата сеанса
Выдать список кинофильмов, которые показывают на заданную Дату и Время сеанса. Просматривать сеансы в интервале два часа от заданного Времени сеанса.
30 май 14, 15:27    [16098103]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Валентина1992
Есть таблица сеанс, с столбцами кинофильмы и дата сеанса
Выдать список кинофильмов, которые показывают на заданную Дату и Время сеанса. Просматривать сеансы в интервале два часа от заданного Времени сеанса.

И как вы попробовали написать запросы ?
И что из всего этого у вас не получилось ?
30 май 14, 15:29    [16098113]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Валентина1992
Member

Откуда:
Сообщений: 19
Glory,
я не знаю как задать дату и просмотреть в интервале
два часа
30 май 14, 15:31    [16098129]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Валентина1992
Glory,
я не знаю как задать дату и просмотреть в интервале
два часа
Для начала покажите скрипт создания таблицы,
наполнения её тестовыми данными и номер версии сервера.
30 май 14, 15:32    [16098140]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Валентина1992
Glory,
я не знаю как задать дату и просмотреть в интервале
два часа

Учитеь пользоваться хелпом
http://msdn.microsoft.com/en-us/library/ms186724(v=sql.105).aspx
30 май 14, 15:33    [16098152]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Валентина1992
Member

Откуда:
Сообщений: 19
[Для начала покажите скрипт создания таблицы,
наполнения её тестовыми данными и номер версии сервера]
USE [Кинотеатр]
GO
/****** Объект: Table [dbo].[seans] Дата сценария: 05/30/2014 17:35:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[seans](
[Nom] [int] IDENTITY(1,1) NOT NULL,
[Kod_z] [int] NOT NULL,
[Kod_kinofilma] [int] NOT NULL,
[data_seansa] [datetime] NOT NULL,
[kolvo_prod_mest_per_kat] [int] NOT NULL,
[kolvo_prod_mest_vtor_kat] [int] NOT NULL,
CONSTRAINT [PK_seans] PRIMARY KEY CLUSTERED
(
[Nom] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[seans] WITH CHECK ADD CONSTRAINT [FK_seans_Kinofilm1] FOREIGN KEY([Kod_kinofilma])
REFERENCES [dbo].[Kinofilm] ([Kod_kinofilma])
GO
ALTER TABLE [dbo].[seans] CHECK CONSTRAINT [FK_seans_Kinofilm1]
GO
ALTER TABLE [dbo].[seans] WITH CHECK ADD CONSTRAINT [FK_seans_Zal1] FOREIGN KEY([Kod_z])
REFERENCES [dbo].[Zal] ([Kod_zala])
GO
ALTER TABLE [dbo].[seans] CHECK CONSTRAINT [FK_seans_Zal1]
30 май 14, 15:37    [16098178]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Валентина1992,

Вы мне сломали глаза
Есть же тег SRC!

Где заполнение данными и номер версии сервера?
30 май 14, 15:39    [16098191]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
SSn888
Member

Откуда:
Сообщений: 340
Валентина1992,

"Просматривать сеансы в интервале два часа от заданного Времени сеанса" - на два часа вперед по времени или назад?


Предположу, что "вперед"
DECLARE @dt1 datetime

SELECT *
FROM [dbo].[seans]
WHERE [data_seansa] BETWEEN  @dt1 AND DATEADD(hour, 2, @dt1)
ORDER BY [data_seansa]
31 май 14, 14:04    [16100846]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Валентина1992
[Для начала покажите скрипт создания таблицы,
наполнения её тестовыми данными и номер версии сервера]
USE [Кинотеатр]
GO
/****** Объект:  Table [dbo].[seans]    Дата сценария: 05/30/2014 17:35:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[seans](
	[Nom] [int] IDENTITY(1,1) NOT NULL,
	[Kod_z] [int] NOT NULL,
	[Kod_kinofilma] [int] NOT NULL,
	[data_seansa] [datetime] NOT NULL,
	[kolvo_prod_mest_per_kat] [int] NOT NULL,
	[kolvo_prod_mest_vtor_kat] [int] NOT NULL,
 CONSTRAINT [PK_seans] PRIMARY KEY CLUSTERED 
(
	[Nom] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[seans]  WITH CHECK ADD  CONSTRAINT [FK_seans_Kinofilm1] FOREIGN KEY([Kod_kinofilma])
REFERENCES [dbo].[Kinofilm] ([Kod_kinofilma])
GO
ALTER TABLE [dbo].[seans] CHECK CONSTRAINT [FK_seans_Kinofilm1]
GO
ALTER TABLE [dbo].[seans]  WITH CHECK ADD  CONSTRAINT [FK_seans_Zal1] FOREIGN KEY([Kod_z])
REFERENCES [dbo].[Zal] ([Kod_zala])
GO
ALTER TABLE [dbo].[seans] CHECK CONSTRAINT [FK_seans_Zal1]
iap, Так не лучше, генераторы скриптов от MS вырвиглазные и не удобные.
Вот если бы SSMS делали Apple, тогда бы ...
1 июн 14, 02:07    [16101944]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
bodzin
Member

Откуда:
Сообщений: 10
На счет +2 часа к указаному времени - хз, но так вроде пашет)
CREATE FUNCTION TimeOnly (@Date datetime)
RETURNS time
AS
BEGIN
 RETURN CAST(@Date as time);
END
GO
SELECT k.Naz_kinofilma AS Название, s.data_seans AS Сеанс FROM seans AS s
        JOIN Kinofilm as k
		ON s.Kod_kinofilma=k.Kod_kinofilma
WHERE dbo.TimeOnly(data_seans) = dbo.TimeOnly('12:00')
ORDER BY data_seans
2 июн 14, 01:43    [16103990]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
bodzin, Картинка с другого сайта.

Целая скалярная процедура ради тупого Cast-а.
Люди, ау.

dbo.TimeOnly(data_seans)
Cast(data_seans AS Time)
Convert(Time,data_seans)
Это называется убейте производительность напрочь на ровном месте.
dbo.TimeOnly(data_seans) = dbo.TimeOnly('12:00')
Это вообще жесть.
Вы чё стебаетесь?! Ещё что-то подобное и можно в бан за троллинг.
2 июн 14, 02:03    [16104001]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
bodzin
Member

Откуда:
Сообщений: 10
Mnior
bodzin, Картинка с другого сайта.

Целая скалярная процедура ради тупого Cast-а.
Люди, ау.

dbo.TimeOnly(data_seans)
Cast(data_seans AS Time)
Convert(Time,data_seans)
Это называется убейте производительность напрочь на ровном месте.
dbo.TimeOnly(data_seans) = dbo.TimeOnly('12:00')
Это вообще жесть.
Вы чё стебаетесь?! Ещё что-то подобное и можно в бан за троллинг.


Сори, я только учусь. Не стоит так придираться к вариантам:)
2 июн 14, 11:51    [16105045]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
bodzin,

+ bodzin
Варианты это правильно.
Но я бы вам посоветовал на этом этапе профессионального роста не распылятся своими вариантами, а для начала исследовать самому, экспериментировать, читать мануалы, жадно поглощая то что непонятно.
Потом потихоньку почитывать задачи и проблемы ставящиеся тут на форуме, решать самому и сравнивать с ответами, более понимающих тут людей. Можно задавать вопросы если вам лично непонятно что-то, вплоть до того "почему так?".

И вот когда подрастёте и почувствуете что знаете не сильно меньше (хоть в чём-то), тогда велкам - помогайте другим, но не забывайте сравнивать.
У вас никогда не должно быть такого, что то что постят другие вам в чём либо не понятно.

Не надо тут глухих старушек "Не знаю что постят другие, но я запостю, проявлю себя любимого". Гармонично вписывайтесь в коллектив как часть целого. Посты должны приносить пользу, а не плодится.

Но если вы живёте с правилом "Не понимаю что-то, но возможно это и не важно". То у меня для вас плохие новости.
3 июн 14, 01:09    [16109922]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить