Значения по умолчанию (Defaults) и пользовательские типы данных на их основе
· Значения по умолчанию – date: по умолчанию присваивается текущая дата. Пользовательский тип данных – type_date.
CREATE DEFAULT [dbo].[date] AS GETDATE()
Рис. 16. Пользовательский тип данных – type_date
· Значения по умолчанию – year: по умолчанию присваивается значение текущего года. Пользовательский тип данных – type_year.
CREATE DEFAULT [dbo].[year] AS YEAR (GETDATE())
Рис.17. Пользовательский тип данных – type_year Правила (Rule)s и пользовательские типы данных на их основе · Правило – rule_number_payers_recipients: переменная, к которой применено данное правило шестизначная, каждый знак только цифра. Пользовательский тип данных – type_number_payers_recipients.
CREATE RULE [dbo].[rule_number_payers_recipients] AS @number_payers_recipients LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]'
Рис.18. Пользовательский тип данных – type_number_payers_recipients · Правило – rule_account: переменная, к которой применено данное правило состоит из четырех символов, первые два из которых цифры от 0 до 9, третий точка, а четвертый цифра от 0 до 9. Пользовательский тип данных – type_accuonts.
CREATE RULE [dbo].[rule_account] AS @account LIKE '[0-9][0-9].[0-9]'
Рис.19. Пользовательский тип данных – type_accuonts Запросы · Запрос формирует список приходных ордеров, по которым в прошлом месяце зафиксировано поступление в кассу наличных денежных средств от покупателей-клиентов. Программный код: SELECT [№_arrival_warrant], CONVERT(CHAR(11),date) AS date, sum, foundationKt AS foundation, name_organisation FROM arrival_warrant, payers, accuonts WHERE arrival_warrant.[№_account]='62.1' AND arrival_warrant.[№_payer]=payers.[№_payer] AND arrival_warrant.[№_account]=accuonts.[№_account] AND MONTH(date)=MONTH(GETDATE())-1 ORDER BY [№_arrival_warrant] Результат выполнения: Рис.20. Запрос «Поступления за прошедший месяц от покупателей»
· Запрос формирует список расходных ордеров, по которым в прошлом месяце выданы из кассы наличные денежные средства подотчетным лицам. Программный код: SELECT [№_expense_warrant], CONVERT(CHAR(11),date) AS date, sum, foundationDt AS foundation, name_recipient, post FROM expense_warrant, recipients, accuonts WHERE expense_warrant.[№_account] IN (71.1, 71.2, 71.3) AND expense_warrant.[№_recipient]=recipients.[№_recipient] AND expense_warrant.[№_account]=accuonts.[№_account] AND MONTH(date)=MONTH(GETDATE())-1 ORDER BY [№_expense_warrant] Результат выполнения: Рис.21. Запрос «Выдача за прошедший месяц подотчетным лицам» · Запрос формирует список расходных ордеров, по которым в прошлом месяце выданы из кассы наличные денежные средства подотчетным лицам для предстоящей командировки.
Программный код: SELECT [№_expense_warrant], name_recipient, post, sum FROM expense_warrant, recipients WHERE [№_account]='71.2' AND expense_warrant.[№_recipient]=recipients.[№_recipient] AND MONTH(date)=MONTH(GETDATE())-1 ORDER BY [№_expense_warrant] Результат выполнения: Рис.22. Запрос «Выдача за прошедший месяц подотчетным лицам для предстоящей командировки» · Запрос отображает итоговые суммы расходов по дням в течение прошедшего месяца.
Программный код: SELECT CONVERT(CHAR(11),date) AS date, SUM(sum)AS total FROM expense_warrant GROUP BY date HAVING MONTH(date)=MONTH(GETDATE())-1 ORDER BY date Результат выполнения: Рис.23. Запрос «расход по дням в течение прошедшего месяца.» · Запрос отображает итоговые суммы приходов по дням в течение прошедшего месяца.
Программный код: SELECT CONVERT(CHAR(11),date) AS date, SUM(sum)AS total FROM arrival_warrant GROUP BY date HAVING MONTH(date)=MONTH(GETDATE())-1 ORDER BY date Результат выполнения: Рис.24. Запрос «приход по дням в течение прошедшего месяца» Представления (Views) · Представление – arrival_document: отображает полную информацию по приходным ордерам.
Программный код: ALTER VIEW arrival_document AS SELECT arrival_warrant.[№_arrival_warrant], arrival_warrant.date, arrival_warrant.sum, accuonts.[№_account], accuonts.foundationKt AS comment, (payers.name_organisation+' '+payers.FIO) AS payers FROM accuonts INNER JOIN arrival_warrant ON accuonts.[№_account] =arrival_warrant.[№_account] INNER JOIN payers ON arrival_warrant.[№_payer] = payers.[№_payer] WHERE (YEAR(arrival_warrant.date) = YEAR(GETDATE())) Результат выполнения: Рис.25. Представление arrival_document · Представление – expense_document: отображает полную информацию по расходным ордерам. Программный код: CREATE VIEW expense_document AS SELECT expense_warrant.[№_expense_warrant], expense_warrant.date, expense_warrant.sum, expense_warrant.[№_account], accuonts.foundationDt AS comment, recipients.name_recipient FROM expense_warrant INNER JOIN accuonts ON expense_warrant.[№_account] = accuonts.[№_account] INNER JOIN recipients ON expense_warrant.[№_recipient] = recipients.[№_recipient] WHERE (YEAR(dbo.expense_warrant.date) = YEAR(GETDATE())) Результат выполнения: Рис.26. Представление expense_document · Представление – balanse: отображает соотношение расходов и доходов по дням за прошедший месяц. Программный код: CREATE VIEW balanse AS SELECT arrival_warrant.date, SUM(DISTINCT arrival_warrant.sum) AS arrival_sum, SUM(DISTINCT expense_warrant.sum) AS expense_sum, SUM(DISTINCT dbo.arrival_warrant.sum) - SUM(DISTINCT expense_warrant.sum) AS balanse FROM arrival_warrant INNER JOIN expense_warrant ON arrival_warrant.date = expense_warrant.date GROUP BY arrival_warrant.date, expense_warrant.date HAVING(MONTH(expense_warrant.date) = MONTH(GETDATE()) - 1) Результат выполнения: Рис.27. Представление balanse · Представление – profit_from_sales_past_month: отображает прибыль по магазинам за последний месяц.
Программный код: CREATE VIEW profit_from_sales_past_month AS SELECT payers.name_organisation, SUM(arrival_warrant.sum) AS total FROM arrival_warrant INNER JOIN payers ON arrival_warrant.[№_payer] = payers.[№_payer] WHERE (MONTH(arrival_warrant.date) = MONTH(GETDATE()) - 1) AND (arrival_warrant.[№_account] = '90.1') GROUP BY payers.name_organisation ORDER BY payers.name_organisation Результат выполнения: Рис.28. Представление profit_from_sales_past_month
· Представление – profit_from_sales_shops: отображает прибыль по магазинам за каждый месяц.
Программный код: CREATE VIEW profit_from_sales_shops AS SELECT payers.name_organisation, SUM(arrival_warrant.sum) AS total, MONTH(arrival_warrant.date) AS month FROM arrival_warrant INNER JOIN payers ON arrival_warrant.[№_payer] = payers.[№_payer] WHERE (arrival_warrant.[№_account] = '90.1') GROUP BY payers.name_organisation, MONTH(arrival_warrant.date) Результат выполнения: Рис.29. Представление profit_from_sales_shops
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (494)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |