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

Откуда:
Сообщений: 85
Чуть-чуть запросик не получается:
Рубрика, количество книг до 1980 года издания, количество книг после 1980 года издания.

create database lab2
go
use lab2
CREATE TABLE [Каталог книг] (
	[Рубрикатор] [nchar] (8) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Шифр] [nchar] (6) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Автор] [nchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Название] [nchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Место издания] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,
	[Шифр издательства] [nchar] (5) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Год издания] [int] NULL ,
	[Количество страниц] [int] NULL ,
	[Примечание] [nchar] (20) COLLATE Cyrillic_General_CI_AS NULL CONSTRAINT [DF_Каталог книг_Примечание] DEFAULT (N'Учебник'),
	CONSTRAINT [IX_[Каталог книг]]] UNIQUE  NONCLUSTERED 
	(
		[Рубрикатор],
		[Шифр]
	)  ON [PRIMARY] 
) ON [PRIMARY]
GO


CREATE TABLE [Рубрикаторы] (
	[Шифр рубрики] [nchar] (8) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Название рубрики] [nchar] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	CONSTRAINT [PK_Рубрикаторы] PRIMARY KEY  CLUSTERED 
	(
		[Шифр рубрики]
	)  ON [PRIMARY] 
) ON [PRIMARY]
GO

INSERT INTO [lab2].[dbo].[Рубрикаторы]([Шифр рубрики], [Название рубрики])
VALUES(1,'Рубрика1')
INSERT INTO [lab2].[dbo].[Рубрикаторы]([Шифр рубрики], [Название рубрики])
VALUES(2,'Рубрика2')
INSERT INTO [lab2].[dbo].[Рубрикаторы]([Шифр рубрики], [Название рубрики])
VALUES(3,'Рубрика3')
INSERT INTO [lab2].[dbo].[Рубрикаторы]([Шифр рубрики], [Название рубрики])
VALUES(4,'Рубрика4')
INSERT INTO [lab2].[dbo].[Рубрикаторы]([Шифр рубрики], [Название рубрики])
VALUES(5,'Рубрика5')
GO

INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,1,'Сидоров', 'книга1', 2,1975)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,2,'Иванов', 'книга2', 2,1972)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,3,'Иванов', 'книга3', 2,1989)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,4,'Иванов', 'книга4', 2,2000)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,5,'Иванов', 'книга5', 2,1971)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,6,'Иванов', 'книга6', 2,1989)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,7,'Иванов', 'книга7', 2,1998)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,8,'Иванов', 'книга8', 2,1924)
INSERT INTO [Каталог книг]([Рубрикатор], [Шифр], [Автор], [Название], [Шифр издательства], [Год издания])
VALUES(1,9,'Иванов', 'книга9', 2,1970)
GO

Это институтское задание, поэтому я не знаю зачем в таблице [Каталог книг] составной ключ.
Там есть еще одна таблица "Издательства", но она тут не нужна.

Заранее благодарен всем откликнувшимся.
29 ноя 04, 17:49    [1144880]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
La Fuente
Member

Откуда:
Сообщений: 85
Забыл....
Поле рубрикатор таблицы Каталог книг - внешний ключ для таблицы Рубрикаторы.
29 ноя 04, 17:56    [1144913]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
SELECT
  [Рубрикаторы].[Название рубрики],
  SUM(CASE WHEN [Каталог книг].[Год издания] < 1980 THEN 1 END) AS [До 1980],
  SUM(CASE WHEN [Каталог книг].[Год издания] >= 1980 THEN 1 END) AS [После 1980]
FROM
  [Рубрикаторы]
  INNER JOIN [Каталог книг] ON
  [Рубрикаторы].[Шифр рубрики] = [Каталог книг].[Рубрикатор]
GROUP BY
    [Рубрикаторы].[Название рубрики]
ORDER BY
    [Рубрикаторы].[Название рубрики]
29 ноя 04, 17:58    [1144921]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
La Fuente
Member

Откуда:
Сообщений: 85
CASE WHEN [Каталог книг].[Год издания] < 1980 THEN 1 END

Эта штука говорит, что если нашел нужную книжку, то верни единицу?
29 ноя 04, 18:12    [1144978]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Да,в противном случаи NULL. Подробности в BOL.
29 ноя 04, 18:16    [1144994]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
La Fuente
Member

Откуда:
Сообщений: 85
pkarklin, огромное спасибо. Вы меня очень выручили.
29 ноя 04, 18:18    [1145002]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
2pkarklin: (офф-топ) зачем вы студентам лабы решаете?
29 ноя 04, 18:24    [1145021]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
GreenSunrise
2pkarklin: (офф-топ) зачем вы студентам лабы решаете?


Меня приятно удивило практическое полное удовлетворение заданного вопроса требованиям Правил форума, что бывает не часто. Хоть это и лаба, но видно жедание учиться, учиться и учиться... Не смог удержаться, сорри.
29 ноя 04, 18:29    [1145035]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
2GreenSunrise: а почему бы и нет?
29 ноя 04, 18:31    [1145039]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
La Fuente
Member

Откуда:
Сообщений: 85
pkarklin
GreenSunrise
2pkarklin: (офф-топ) зачем вы студентам лабы решаете?


Меня приятно удивило практическое полное удовлетворение заданного вопроса требованиям Правил форума, что бывает не часто. Хоть это и лаба, но видно жедание учиться, учиться и учиться... Не смог удержаться, сорри.


Еще раз спасибо, в это раз за "желание учиться"
29 ноя 04, 18:37    [1145048]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Гыыыы %-)))) Сейчас у нас на форуме частенько задают ужасно сформулированные вопросы - это проблема. Зато когда людям не отвечают, они пытаются сформулировать вопрос лучше и попутно сами до чего-то доходят (случается. не всегда, но случается ;-))

Но со временем мы воспитаем поколение, которое будет идеально задавать вопросы, но не иметь ни малейшего желания самому отвечать на них. Абыдна... Тут даже формулировка вопроса была не автора, а препода, который методичку составлял.

pkarklin
Хоть это и лаба, но видно жедание учиться, учиться и учиться...

Хех... Ну разве что видно желание учиться в институте, не вылетев. А не учиться самому. Разные, знаете ли, вещи.

2Гавриленко Сергей Алексеевич: я ж ничего против не говорю :-) Чисто отвлеченный вопрос. Даже предупреждение было насчет оффтоп. Ну вот любопытно мне, потому и спрашиваю.

Вы это... Я не против ответов - на любые вопросы. Ни боже мой :-)) Просто заело любопытство.
29 ноя 04, 18:57    [1145079]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить