Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2018, 11:47   #1
Hailrake(Vinitsa)
Новичок
Джуниор
 
Регистрация: 16.11.2018
Сообщений: 2
Счастье Простое представление

Доброго времени суток, нужно чтобы представление:
Отображало количество арендованных жилых и нежилых
объектов недвижимости физическими и юридическими лицами каждый месяц текущего года
Hailrake(Vinitsa) вне форума Ответить с цитированием
Старый 16.11.2018, 12:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
DECLARE @Год int
SET @Год = 2017
SELECT m.number,COUNT(*)
  FROM master.dbo.spt_values m, ТвояТаблица s
  WHERE m.type = 'P' AND m.number between 1 AND 12 AND
        s.ДатаНачалаАренды<=DATEADD(m,1,CONVERT(datetime,CAST(@Год as varchar(4))+RIGHT('0'+CAST(m.number as varchar(2)),2)+'01',112))-1 AND
        s.ДатаКонцаАренды>=CONVERT(datetime,CAST(@Год as varchar(4))+RIGHT('0'+CAST(m.number as varchar(2)),2)+'01',112)
  GROUP BY m.number
Для MSSQL. Для других СУБД другие функции даты-времени да и таблички с номерами master.dbo.spt_values нет. Там или свою табличку или union
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.11.2018, 11:33   #3
Hailrake(Vinitsa)
Новичок
Джуниор
 
Регистрация: 16.11.2018
Сообщений: 2
По умолчанию

Код:
create view Gogo
as
select*from [dbo].[Договор_об_аренде] s
DECLARE @Год int
SET @Год = 2017
SELECT m.number,COUNT(*)
  FROM master.dbo.spt_values m,[dbo].[Договор_об_аренде]  s
  WHERE m.type = 'P' AND m.number between 1 AND 12 AND
        s.[Дата_начала_аренды]<=DATEADD(m,1,CONVERT(datetime,CAST(@Год as varchar(4))+RIGHT('0'+CAST(m.number as varchar(2)),2)+'01',112))-1 AND
        s.[Дата_окончания_аренды]>=CONVERT(datetime,CAST(@Год as varchar(4))+RIGHT('0'+CAST(m.number as varchar(2)),2)+'01',112)
  GROUP BY m.number
  go
  select*from Gogo
В чем ошибка ? подчеркивает create view Gogo и говорит должен быть единственный пакет
Hailrake(Vinitsa) вне форума Ответить с цитированием
Старый 22.11.2018, 12:13   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А почитать хелп по create view? И год константой забей в представлении
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 22.11.2018 в 12:16.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простое приложение marina krasa Microsoft Office Excel 5 15.05.2013 15:45
Простое задание С++ Arrioh Помощь студентам 1 28.03.2012 18:00
k-е простое daniil123 Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2011 23:52
Простое суммирование Trimbl Microsoft Office Excel 2 20.12.2010 08:58