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

Откуда:
Сообщений: 28
Таблица:
create table A_SALEREPORTS
(
ID NUMBER not null,
ATTR_CLOSE NUMBER(1) not null,
INCOMING_ID NUMBER not null,
CURRENCY_ID NUMBER not null,
DTS_ID NUMBER not null,
STORNO NUMBER(1) default 0 not null,
USER_ID NUMBER not null,
DAT_INP DATE default SysDate not null,
DATE_ACC_IN DATE not null,
DATE1 DATE not null,
DATE2 DATE not null,
PKIND NUMBER(1) not null,
MRO_ID NUMBER,
SALDO1 NUMBER,
SALDO2 NUMBER,
SREP_NUM VARCHAR2(12),
AG_ID NUMBER,
KASS_ID NUMBER
)

У меня задание:
Написать запрос:
Количество строк в A_SALEREPORTS в каждом месяце. Выведите количество строк и номер месяца (MM).
A_SALEREPORTS - отчеты. Primary Key: ID
колонка A_SALEREPORTS.DATE_ACC_IN = дата записи с точностью до дня.
Можно ли так в sql написать:
Например для января:
Мне кажется логично я написал, но с точки зрения синтаксиса правильно ли?
SELECT COUNT(DISTINCT ID) * FROM a_salereports Where to_char(a_salereports.date_acc_in, 'mm') = 1;
26 авг 13, 23:49    [14758085]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
Empirical
Member

Откуда:
Сообщений: 99
vurdalak,

SELECT datepart(mm, date_acc_in) as month, COUNT(1) as [count] FROM a_salereports
group by datepart(mm, date_acc_in)
27 авг 13, 00:56    [14758142]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
vurdalak
Member

Откуда:
Сообщений: 28
Я продолжаю решать задачки. Проверьте меня пожалуйста )
3. В каком году строк в A_SALEREPORTS больше всего. Выведите количество строк и год (YYYY).
SELECT datepart(YYYY, date_acc_in) as monthyear, Max(COUNT(*)) as [count] FROM a_salereports
group by datepart(YYYY, date_acc_in)

Правильно?
28 авг 13, 20:30    [14767865]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
Гость333
Member

Откуда:
Сообщений: 3683
vurdalak
SELECT datepart(YYYY, date_acc_in) as monthyear, Max(COUNT(*)) as [count] FROM a_salereports
group by datepart(YYYY, date_acc_in)


Правильно?

Не стесняйтесь пользоваться тегом SRC ;-)
По поводу того, правильно или нет, — вы запускали запрос? Какой результат он выдал?
28 авг 13, 20:37    [14767874]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
vurdalak
Member

Откуда:
Сообщений: 28
Да вроде правильно.

Помогите решить задачку пожалуйста. Вот вторая таблица операции:
/*==============================================================*/
/* Table: A_DEALOPS Операции */
/*==============================================================*/
create table A_DEALOPS
(
ID NUMBER not null,
OPS_TYPE_ID NUMBER,
DEALDATE DATE not null,
POSTAV_ID NUMBER,
SREP_ID NUMBER,
STORNO NUMBER(1) default 0 not null,
FIXED NUMBER(1) default 0 not null,
DAT_INP DATE default SysDate not null,
USER_ID NUMBER,
AMOUNT NUMBER,
CUSTOM_EXTRACT CHAR(1) default '0' not null,
BSO_TYPE_ID NUMBER,
BSO_SER VARCHAR2(5),
BSO_NUM NUMBER,
PRN_NUM NUMBER,
DSP_CODE VARCHAR2(20),
DSP_ID NUMBER,
NRATE NUMBER,
PAS_DOCNUM VARCHAR2(50),
PAS_FIO VARCHAR2(100),
REASON VARCHAR2(300),
NCURRENCY_ID NUMBER,
FIX_ID NUMBER,
PACK_ECV NUMBER,
REM VARCHAR2(500),
PART_ECV NUMBER,
PACK_ID NUMBER,
STAMP_ID NUMBER,
STAMP_CODE VARCHAR2(10),
CORP_ID NUMBER,
CORP_CODE VARCHAR2(20),
BROKER_ID NUMBER,
BROKER_CODE VARCHAR2(10),
BSO_NUM2 NUMBER,
ROUTE VARCHAR2(100),
DAT_SEND DATE,
GENERAL_CARRIER NUMBER,
TCC VARCHAR2(3),
VVL_ID NUMBER
)
/

Задание:
Найдите отчет с максимальным количеством операций, у которых DATE_ACC_IN лежит в апреле 2010г. Выведите ID отчета и количество операций в нем.
Я так понимаю у этих таблиц какая то связь должна быть. Но какая? Помогите пожалуйста.
28 авг 13, 21:34    [14767990]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
vurdalak
Member

Откуда:
Сообщений: 28
vurdalak,
И первая таблица называется Table: A_SALEREPORTS Отчеты о продаже
28 авг 13, 21:36    [14767993]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
vurdalak
Member

Откуда:
Сообщений: 28
vurdalak,
/*==============================================================*/
/* Table: A_SALEREPORTS  Отчеты о продаже                       */
/*==============================================================*/
create table A_SALEREPORTS 
(
   ID                   NUMBER               not null,
   ATTR_CLOSE           NUMBER(1)            not null,
   INCOMING_ID          NUMBER               not null,
   CURRENCY_ID          NUMBER               not null,
   DTS_ID               NUMBER               not null,
   STORNO               NUMBER(1)            default 0 not null,
   USER_ID              NUMBER               not null,
   DAT_INP              DATE                 default SysDate not null,
   DATE_ACC_IN          DATE                 not null,
   DATE1                DATE                 not null,
   DATE2                DATE                 not null,
   PKIND                NUMBER(1)            not null,
   MRO_ID               NUMBER,
   SALDO1               NUMBER,
   SALDO2               NUMBER,
   SREP_NUM             VARCHAR2(12),
   AG_ID                NUMBER,
   KASS_ID              NUMBER
)
/
comment on table A_SALEREPORTS is
'Отчеты о продаже'
/

alter table A_SALEREPORTS
   add constraint PK_A_SALEREPORTS primary key (ID)
/

/*==============================================================*/
/* Index: A_SALEREPORTS_01                                      */
/*==============================================================*/
create index A_SALEREPORTS_01 on A_SALEREPORTS (
   AG_ID ASC
)
/

/*==============================================================*/
/* Index: A_SALEREPORTS_02                                      */
/*==============================================================*/
create index A_SALEREPORTS_02 on A_SALEREPORTS (
   INCOMING_ID ASC
)
/

/*==============================================================*/
/* Index: A_SALEREPORTS_06                                      */
/*==============================================================*/
create index A_SALEREPORTS_06 on A_SALEREPORTS (
   DATE_ACC_IN ASC,
   DTS_ID ASC
)
/


/*==============================================================*/
/* Table: A_DEALOPS Операции                                    */
/*==============================================================*/
create table A_DEALOPS 
(
   ID                   NUMBER               not null,
   OPS_TYPE_ID          NUMBER,
   DEALDATE             DATE                 not null,
   POSTAV_ID            NUMBER,
   SREP_ID              NUMBER,
   STORNO               NUMBER(1)            default 0 not null,
   FIXED                NUMBER(1)            default 0 not null,
   DAT_INP              DATE                 default SysDate not null,
   USER_ID              NUMBER,
   AMOUNT               NUMBER,
   CUSTOM_EXTRACT       CHAR(1)              default '0' not null,
   BSO_TYPE_ID          NUMBER,
   BSO_SER              VARCHAR2(5),
   BSO_NUM              NUMBER,
   PRN_NUM              NUMBER,
   DSP_CODE             VARCHAR2(20),
   DSP_ID               NUMBER,
   NRATE                NUMBER,
   PAS_DOCNUM           VARCHAR2(50),
   PAS_FIO              VARCHAR2(100),
   REASON               VARCHAR2(300),
   NCURRENCY_ID         NUMBER,
   FIX_ID               NUMBER,
   PACK_ECV             NUMBER,
   REM                  VARCHAR2(500),
   PART_ECV             NUMBER,
   PACK_ID              NUMBER,
   STAMP_ID             NUMBER,
   STAMP_CODE           VARCHAR2(10),
   CORP_ID              NUMBER,
   CORP_CODE            VARCHAR2(20),
   BROKER_ID            NUMBER,
   BROKER_CODE          VARCHAR2(10),
   BSO_NUM2             NUMBER,
   ROUTE                VARCHAR2(100),
   DAT_SEND             DATE,
   GENERAL_CARRIER      NUMBER,
   TCC                  VARCHAR2(3),
   VVL_ID               NUMBER
)
/

comment on table A_DEALOPS is
'Совершенные операции'
/

alter table A_DEALOPS
   add constraint PK_A_DEALOPS primary key (ID)
/

alter table A_DEALOPS
   add constraint FK_A_DEALOP_REF_16915_A_SALERE foreign key (SREP_ID)
      references A_SALEREPORTS (ID)
      on delete cascade
/


/*==============================================================*/
/* Index: A_DEALOPS_01                                          */
/*==============================================================*/
create index A_DEALOPS_01 on A_DEALOPS (
   BSO_TYPE_ID ASC
)
/

/*==============================================================*/
/* Index: A_DEALOPS_02                                          */
/*==============================================================*/
create index A_DEALOPS_02 on A_DEALOPS (
   SREP_ID ASC
)
/

/*==============================================================*/
/* Index: A_DEALOPS_03                                          */
/*==============================================================*/
create index A_DEALOPS_03 on A_DEALOPS (
   DSP_ID ASC
)
/

/*==============================================================*/
/* Index: A_DEALOPS_04                                          */
/*==============================================================*/
create index A_DEALOPS_04 on A_DEALOPS (
   OPS_TYPE_ID ASC
)
/

/*==============================================================*/
/* Index: A_DEALOPS_05                                          */
/*==============================================================*/
create index A_DEALOPS_05 on A_DEALOPS (
   BSO_NUM ASC
)
/

A_SALEREPORTS - отчеты. Primary Key: ID
A_DEALOPS - операции отчета. Primary Key: ID, Foreign Key: SREP_ID

колонка A_SALEREPORTS.DATE_ACC_IN = дата записи с точностью до дня.

Скопировал все таблицы. Оформил вопрос.
Задание:
Найдите отчет с максимальным количеством операций, у которых DATE_ACC_IN лежит в апреле 2010г. Выведите ID отчета и количество операций в нем.
Я так понимаю у этих таблиц какая то связь должна быть. Но какая? Помогите пожалуйста.
28 авг 13, 22:01    [14768030]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
vurdalak
vurdalak,Помогите пожалуйста.


Модератор: Поехали в форум "Работа", где Вы сможете огласить бюджет, выделенный на решение задач, которые сами решить не в силах?
28 авг 13, 22:13    [14768055]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
vurdalak
Member

Откуда:
Сообщений: 28
pkarklin,
Я думал тут найду помощь((
У меня вопрос всего лишь: как эти таблицы могут быть между собой связаны? Я не прошу все сделать за меня.
28 авг 13, 22:20    [14768074]     Ответить | Цитировать Сообщить модератору
 Re: Учебные задачи по sql  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
vurdalak,

Вы даже не угадали цвет учебника сумели попасть в раздел форума, соответствующий СУБД, в разрезе которой Вам задали задания. Какая уж тут помощь...

Сообщение было отредактировано: 28 авг 13, 22:27
28 авг 13, 22:26    [14768091]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить