Добавил:
support-vk-server-knmcadiknmcadibav.ru Сайт моих друзей из VKT NDA : https://support-vk-server-knmcadiknmcadibav.ru/about/ ila_iv_id566844132@dnevnik.ru VK Testers NDA (тестировщик) QA. Студент 4 курса. +79009627198 https://vk.cc/help #HLKLesNarod# Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
05.07.2025
Размер:
3.18 Кб
Скачать
-- Переключение на базу NameDataB и создание схемы
USE master;
GO

IF DB_ID('NameDataB') IS NULL CREATE DATABASE NameDataB;
IF DB_ID('NameDB1') IS NULL CREATE DATABASE NameDB1;
GO

USE NameDataB;
GO

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'БобровскийЛес')
EXEC('CREATE SCHEMA БобровскийЛес');
GO

-- Создание таблицы Клиенты
IF OBJECT_ID('БобровскийЛес.Клиенты') IS NULL
BEGIN
CREATE TABLE БобровскийЛес.Клиенты (
ID INT PRIMARY KEY IDENTITY,
ФИО NVARCHAR(100),
Телефон NVARCHAR(20),
Email NVARCHAR(100),
Город NVARCHAR(50),
ДатаРегистрации DATE,
ПоследняяПокупка DATE,
Статус NVARCHAR(20)
);
END
GO

-- Создание таблицы ИсторияКлиентов
IF OBJECT_ID('БобровскийЛес.ИсторияКлиентов') IS NULL
BEGIN
CREATE TABLE БобровскийЛес.ИсторияКлиентов (
ID INT PRIMARY KEY IDENTITY,
КлиентID INT FOREIGN KEY REFERENCES БобровскийЛес.Клиенты(ID),
ДатаОбращения DATETIME DEFAULT GETDATE(),
Комментарий NVARCHAR(MAX)
);
END
GO

-- Переход в базу NameDB1 и создание схемы и таблицы Продажи
USE NameDB1;
GO

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'БобровскийЛес')
EXEC('CREATE SCHEMA БобровскийЛес');
GO

IF OBJECT_ID('БобровскийЛес.Продажи') IS NULL
BEGIN
CREATE TABLE БобровскийЛес.Продажи (
ID INT PRIMARY KEY IDENTITY,
КлиентID INT,
ДатаПродажи DATE,
Сумма MONEY
-- FOREIGN KEY пропущен, так как нельзя ссылаться напрямую на другую базу
);
END
GO

-- Добавление тестовых клиентов
USE NameDataB;
GO

INSERT INTO БобровскийЛес.Клиенты (ФИО, Телефон, Email, Город, ДатаРегистрации, ПоследняяПокупка, Статус)
VALUES
(N'Иванов Сергей', N'89001234567', N'sergey@example.com', N'Казань', GETDATE()-10, GETDATE()-5, NULL),
(N'Петрова Анна', N'89112223344', N'anna@example.com', N'Москва', GETDATE()-180, GETDATE()-100, NULL),
(N'Сидоров Максим', N'89225557766', N'max@example.com', N'Тула', GETDATE()-400, GETDATE()-300, NULL);

-- Автоматическая установка статуса
UPDATE БобровскийЛес.Клиенты
SET Статус = CASE
WHEN ПоследняяПокупка >= GETDATE()-30 THEN 'Активный'
WHEN ПоследняяПокупка >= GETDATE()-180 THEN 'Потенциальный'
ELSE 'Ушёл'
END;
GO

-- История взаимодействий
INSERT INTO БобровскийЛес.ИсторияКлиентов (КлиентID, Комментарий)
SELECT ID, N'Тестовое взаимодействие. Первый контакт.'
FROM БобровскийЛес.Клиенты;
GO

-- Добавление тестовых продаж
USE NameDB1;
GO

INSERT INTO БобровскийЛес.Продажи (КлиентID, ДатаПродажи, Сумма)
VALUES
(1, GETDATE()-5, 15000),
(2, GETDATE()-100, 20000),
(3, GETDATE()-300, 5000);
GO

-- Генерация XML-отчёта
USE NameDataB;
GO

DECLARE @XMLReport XML;

SET @XMLReport = (
SELECT
(SELECT COUNT(*) FROM БобровскийЛес.Клиенты) AS Клиентов,
(SELECT COUNT(*) FROM БобровскийЛес.ИсторияКлиентов) AS Истории,
(SELECT COUNT(*) FROM NameDB1.БобровскийЛес.Продажи) AS Продаж
FOR XML PATH('Статистика'), ROOT('Отчёт')
);

-- Вывод XML-отчёта
PRINT '-------- XML-ОТЧЁТ О СОЗДАНИИ --------';
SELECT @XMLReport;