Разработка программного средства, позволяющего оптимизировать SQL-скрипты
Изучение и характеристика особенностей пользовательского интерфейса. Исследование архитектуры приложения и основных классов, связанных с парсером. Рассмотрение и анализ сущности teradata database – системы массовой параллельной обработки данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 31.10.2016 |
Размер файла | 418,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
bal.BALANCE_RUR
FROM
TEST_DB.CLIENT_ACC src
INNER JOIN DET_DB.ACCOUNT_BALANCE bal
ON
(
src.ACCOUNT_ID = bal.ACCOUNT_ID
AND CAST('2016-05-31' AS DATE) BETWEEN bal.ACTIVE_FROM_DT
AND bal.ACTIVE_TO_DT
)
WHERE
bal.BALANCE_RUR >= 100000
) WITH DATA PRIMARY INDEX (ACCOUNT_ID);
Повторяющийся код
Исходный код
CREATE TABLE TEST_DB.AGREEMENTS_OPENED AS
(
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'ACTIVE' AS AGREEMENT_TYPE
FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr
WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)
AND agr.BALANCE_NEW <> 0
) WITH DATA PRIMARY INDEX (AGREEMENT_ID);
CREATE TABLE TEST_DB.AGREEMENTS_CLOSED AS
(
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'CLOSED' AS AGREEMENT_TYPE
FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr
LEFT JOIN AGG_DB.AGREEMENTS_RESTRUCT rest
ON
(
rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID
AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT
AND rest.ACTIVE_TO_DT
)
WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)
AND agr.BALANCE_NEW = 0
AND agr.BALANCE_OLD <> 0
AND rest.NEW_AGREEMENT_ID IS NULL
) WITH DATA PRIMARY INDEX (AGREEMENT_ID);
CREATE TABLE TEST_DB.AGREEMENTS_RESTRUCT AS
(
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'RESTR' AS AGREEMENT_TYPE
FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr
INNER JOIN AGG_DB.AGREEMENTS_RESTRUCT rest
ON
(
rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID
AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT
AND rest.ACTIVE_TO_DT
)
WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)
AND agr.BALANCE_NEW = 0
AND agr.BALANCE_OLD <> 0
) WITH DATA PRIMARY INDEX (AGREEMENT_ID);
CREATE TABLE TEST_DB.AGREEMENTS_TYPE_REPORT AS
(
SELECT
src.REPORT_DT,
src.AGREEMENT_TYPE,
sum(src.BALANCE_NEW) as SUM_NEW,
sum(src.BALANCE_OLD) as SUM_OLD
FROM (
SELECT * FROM TEST_DB.AGREEMENTS_OPENED
UNION ALL
SELECT * FROM TEST_DB.AGREEMENTS_CLOSED
UNION ALL
SELECT * FROM TEST_DB.AGREEMENTS_RESTRUCT
) src
GROUP BY 1, 2
) WITH DATA NO PRIMARY INDEX;
Исправленный код
CREATE TABLE TEST_DB.AGREEMENTS_BAL AS
(
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD
FROM AGG_DB.AGREEMENT_BALANCE_MONTH agr
WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)
AND (agr.BALANCE_NEW <> 0
OR (agr.BALANCE_NEW = 0
AND agr.BALANCE_OLD <> 0))
) WITH DATA PRIMARY INDEX (AGREEMENT_ID);
CREATE TABLE TEST_DB.AGREEMENTS_CLOSED AS
(
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
rest.NEW_AGREEMENT_ID
FROM TEST_DB.AGREEMENTS_BAL agr
LEFT JOIN AGG_DB.AGREEMENTS_RESTRUCT rest
ON
(
rest.OLD_AGREEMENT_ID = agr.AGREEMENT_ID
AND agr.REPORT_DT BETWEEN rest.ACTIVE_FROM_DT
AND rest.ACTIVE_TO_DT
)
WHERE agr.REPORT_DATE = CAST('2016-05-31' AS DATE)
AND agr.BALANCE_NEW = 0
AND agr.BALANCE_OLD <> 0
) WITH DATA PRIMARY INDEX (AGREEMENT_ID);
CREATE TABLE TEST_DB.AGREEMENTS_TYPE_REPORT AS
(
SELECT
src.REPORT_DT,
src.AGREEMENT_TYPE,
sum(src.BALANCE_NEW) as SUM_NEW,
sum(src.BALANCE_OLD) as SUM_OLD
FROM (
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'ACTIVE' AS AGREEMENT_TYPE
FROM TEST_DB.AGREEMENTS_BAL agr
WHERE agr.BALANCE_NEW <> 0
UNION ALL
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'CLOSED' AS AGREEMENT_TYPE
FROM TEST_DB.AGREEMENTS_CLOSED agr
WHERE agr.NEW_AGREEMENT_ID IS NULL
UNION ALL
SELECT
agr.REPORT_DATE,
agr.AGREEMENT_ID,
agr.BALANCE_NEW,
agr.BALANCE_OLD,
'RESTR' AS AGREEMENT_TYPE
FROM TEST_DB.AGREEMENTS_CLOSED agr
WHERE agr.NEW_AGREEMENT_ID IS NOT NULL
) src
GROUP BY 1, 2
) WITH DATA NO PRIMARY INDEX;
Размещено на Allbest.ru
Подобные документы
Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.
курсовая работа [1,2 M], добавлен 16.08.2012Учета жильцов студенческого общежития. Требования к программному средству. Спецификация качества программного обеспечения. Проектирование архитектуры приложения и структуры данных, пользовательского интерфейса. Спецификация классов и типы данных.
курсовая работа [664,4 K], добавлен 26.08.2012Требования к аппаратным и операционным ресурсам. Логическая и физическая организация. Состав основных классов проекта. Технико-экономическое обоснование разработки программного средства. Задержки при обработке данных. Разработка интерфейса приложения.
дипломная работа [4,4 M], добавлен 16.06.2017Ознакомление с программой проведения сборки компьютера из деталей, имеющихся в базе данных. Рассмотрение правил создания иерархии классов. Описание основных методов и пользовательского интерфейса. Изучение системных требований и текстов основных классов.
курсовая работа [710,2 K], добавлен 26.07.2014Характеристика основных потоков данных, существующих на предприятии. Способы и средства для разработки программного обеспечения. Проектирование пользовательского интерфейса. Разработка слоя взаимодействия с базой данных. Разработка слоя бизнес сервисов.
дипломная работа [750,8 K], добавлен 10.07.2017Имитационное моделирование деятельности "Центра обслуживания абонентов". Диаграммы потоков данных. Выявление вариантов использования. Моделирование видов деятельности и взаимодействий. Проектирование пользовательского интерфейса и архитектуры приложения.
дипломная работа [1,3 M], добавлен 24.10.2010Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.
курсовая работа [395,4 K], добавлен 28.04.2015Специальное и общесистемное программное обеспечение. Разработка диаграммы прецедентов, классов, деятельности, состояний. Детальная реализация функциональных частей программного обеспечения. Разработка пользовательского интерфейса, методика испытаний.
курсовая работа [3,3 M], добавлен 26.01.2013Требования к подсистеме создания Scorm-пакетов. Построение диаграммы потоков данных. Проектирование программного средства. Выбор средств реализации подсистемы. Организация взаимодействия приложения с базой данных. Реализация пользовательского интерфейса.
курсовая работа [634,2 K], добавлен 16.08.2012