powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужен совет по проектированию небольшой Б.Д.
53 сообщений из 53, показаны все 3 страниц
нужен совет по проектированию небольшой Б.Д.
    #36419594
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет комьюнити!
У меня следующее Т.З.
1.Нужно создать базу где будет инвентаризация катриджей.
2.Необходимо узнать сколько каждый отдел потребляет в месяц катриджей.
==
Я создал 1 таблицу с семью столбцами.
авторCREATE TABLE `sklad` (
`Id` int(11) NOT NULL auto_increment,
`curent_date` date default NULL,
`otdel` varchar(20) default '',
`name_family` varchar(20) default '',
`printer` varchar(20) default '',
`catridge` varchar(20) default '',
`Kolichestvo` int(50) default NULL,
`description` varchar(20) default '' COMMENT 'This description',
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
Сейчас думаю может лучше создать 2 таблицы.
Нужен совет профессионалов.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419613
Viktor_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да.. Здесь нужен настоящий профессионал :)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419639
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ладно Вам над новичком прикалываться :)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419784
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше 3, наверняка

а по делу, вам нужны (наверное) таблицы: отделов, физлиц, принтеров, картриджей, движений этих картриджей, инвентаризаций и т.д.. Все начинается с построения модели, а не таблиц.

С уважением, Naf
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419815
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот именно,мне нужно понять как правильно сделать дизайн баззы.
Сколько как Вы считаете нужно сделать таблиц что-бы можно sql запросом вычислить сколько катриджей потребляет каждый отдел в месяц? мне это нужно для построения графиков через OpenFlashChart .
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419831
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы немного неправильно мыслите, вы отвлекитесь от средств работы, а постройте модель: таблицы, связи между ними. А на ваш вопрос я отвечу 10 таблиц, почему? а хз
С уважением, Naf
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419871
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоесть однозначного ответа пока нету?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419890
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueтоесть однозначного ответа пока нету? Я намекаю чтобы вы построили модель - научитесь будет хорошо для вас
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419906
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не спорю.
Можете дать ссылку где почитать ?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419918
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueМожете дать ссылку где почитать ?sql.ru
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419922
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
давайте обойдёмся без флейма.
Модераторы удалите пожалуйста посты не по теме!
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419939
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueСколько как Вы считаете нужно сделать таблиц что-бы можно sql запросом вычислить сколько катриджей потребляет каждый отдел в месяц?
lagorueтоесть однозначного ответа пока нету?Конечно, нету.

Такой запрос можно сделать из любого количества таблиц.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419972
Не важно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оставь одну - это вполне соотвествует твоей задаче.

Поборникам теории баз и декомпозации в нормальные формы на 10 таблиц я напомню про такую штуку как "денормализация" )
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36419984
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не важноОставь одну - это вполне соотвествует твоей задаче.

Можете подсказать как составить sql запрос(если конечно средствами одного sql это возможно) что-бы вывести сколько каждый отдел за месяц в среднем потребляет катриджей.
Запрос c выборкой по дате с начала месяца и по конец я уже составил,а вот как из столбца catridge вычислить среднее значение не знаю.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420124
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorue,

Select
otdel,
avg(kolichestvo) kolichestvo
from table1
where dat between dt1 and dt2
group by otdel
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420132
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorue,
Или
Код: plaintext
1.
2.
3.
4.
5.
6.
Select
otdel,
SUM(kolichestvo) kolichestvo
from table1
where dat between dt1 and dt2
group by otdel

я не понял из вашего поста, что значит "в среднем"
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420156
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, для вашей задачи достаточно одной таблицы, одна строка в которой будет отражать одно движение, а именно, что в такой-то отдел поступило или выбыло некоторое количество картриджей. Начальное их количество по отделам вы заведёте записями о поступлении.
При такой организации данных вы можете всегда посмотреть
1) обороты (приход и расход) за период
2) остатки на определённую дату.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420261
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420274
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueпробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?это пример для некоторой СУБД, нужно адаптировать под вашу. Но в данной ветки обсуждаются вопросы по проектированию, то есть без привязки к конкретному продукту
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420276
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
Select * from sklad WHERE kolichestvo between DATE('2010-01-01') and DATE('2010-01-20') ;
Такой запрос возврашает 0.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420334
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дальше ответ на свой вопрос в этой ветке я не смогу получить,сочтёте за флуд?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420360
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

WAREHOUSEIDPERS_IDCART_ID

PERSONIDFIODEPT_ID

DEPARTMENTIDNAME

PRINTERIDNAMECART_ID

CARTRIGEIDNAMEACTIVE

Как-то так. и связать форейн кеями.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420361
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue , тебе правильно написали - ты начал не с того.

Как вариант, расскажи как у вас эти картриджи "живут" - после этого можно показать примеры как построить таблички.

Наверняка будет нечно как писал Naf
Nafвам нужны (наверное) таблицы: отделов, физлиц, принтеров, картриджей, движений этих картриджей, инвентаризаций и т.д.. Все начинается с построения модели, а не таблиц.
А всякая там "денормализация" - зло!
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420365
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

Для дальнейшего уточнения структуры нужен жизненный цикл картриджей)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420409
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorueпробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?


Не поверите, я названия полей (otdel, kolichestvo) придумал не глядя на приведённую топикстартером структуру данных

Для вашего примера запрос такой:
Код: plaintext
1.
Select otdel, SUM(kolichestvo) kolichestvo from sklad WHERE curent_date between ('2010-01-01') and ('2010-01-20') group by otdel;
Запятая после агрегирующей функции не нужна, это алис для поля
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420421
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A1ek5andr0,

Для маленькой, тем более учебной, задачи такие навороты излишни.
Достаточно одного реестра проводок с явными значениями аналитик
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420451
Riven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, хватит одной таблички. А раз табличка одна, это уже не БД, должно хватить Excel с формулами.

+ SQL-запросы можно прикрутить, если очень хочется
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420463
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TamozhnyaA1ek5andr0,

Для маленькой, тем более учебной, задачи такие навороты излишни.
Достаточно одного реестра проводок с явными значениями аналитикдля учебной как раз нет, иначе чему учиться?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420479
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf,

+1
Да прибудет с тобой Нормализация)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420571
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё это вопросы удобства.
Если ты написал программу, которая решает твой задачу, то это замечательно.
Если в процессе работе с этой программой ты чувствуешь неудобства, и какие-то однотипные действия тебя задалбывают, то ты начинаешь думать об улучшении своей программы.

Нормализация в этой схеме проводится легко и непринуждённо, так что с этим проблем не будет.
(Между прочим некоторым выбор из справочника представляется неудобным)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420597
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tamozhnya,

А ввод, например, департамента ОТК в разных вариантах(Отдел технического контроля, Отдел тех. контроля, Одел т. к. итд.) и последующий поиск по таким "данным" представляется удобным?)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420616
не важно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A1ek5andr0Tamozhnya,

А ввод, например, департамента ОТК в разных вариантах(Отдел технического контроля, Отдел тех. контроля, Одел т. к. итд.) и последующий поиск по таким "данным" представляется удобным?)
Ищите черную кошку.

Решение высосанное из пальца, как и проблема - функция анализа звучания (в скуле зовется Soundex)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420719
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tamozhnyalagorueпробую
Код: plaintext
Select otdel,avg(kolichestvo),kolichestvo from sklad WHERE DATE between ('2010-01-01') and ('2010-01-20') group by otdel;
Ругается на авторERROR 1054 (42S22): Unknown column 'DATE' in 'where clause'
Можете подсказать в чём я не правильно SQL запрос делаю?


Не поверите, я названия полей (otdel, kolichestvo) придумал не глядя на приведённую топикстартером структуру данных

Для вашего примера запрос такой:
Код: plaintext
1.
Select otdel, SUM(kolichestvo) kolichestvo from sklad WHERE curent_date between ('2010-01-01') and ('2010-01-20') group by otdel;
Запятая после агрегирующей функции не нужна, это алис для поля
спасибо,вот сразу видно профессионал!
Задачу поставил сделать именно в БД для поднятия собственного скила.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420744
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

Для поднятия скила лучше делать правильно т.е. с расчетом на масштабируемость. Иначе - иногда проще написать с нуля, чем переделать)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420781
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот я и обратился к проффи.
1.Понять правильно-ли составил дизайн.
2.Понять можно-ли простым sql запросом выборку нужную мне сделать.
Всем спасибо,пойду пробовать запросы с open flash chart подружить и курить мануал по sql!
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420787
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,

1. Неправильно;
2. Можно;

Удачи во всех делах)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420836
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A1ek5andr0Tamozhnya,

А ввод, например, департамента ОТК в разных вариантах(Отдел технического контроля, Отдел тех. контроля, Одел т. к. итд.) и последующий поиск по таким "данным" представляется удобным?)


Я же говорил, это следующая задача. Делается она совершенно естественным (органичным) способом, как следующий этап разработки (т.е. без перепроектировки всей системы). Если она встанет, значит будет выполнена. Однако при аккуратности работающего она может и не встать.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420895
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A1ek5andr0lagorue,

1. Неправильно;

по вашему я не правильно составил дизайн баззы?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420968
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorueA1ek5andr0lagorue,

1. Неправильно;

по вашему я не правильно составил дизайн баззы?

Когда изучишь умные книжки, посмотришь, как проектируют старшие товарищи, потом пройдёт какое-то время, и тогда придёт понимание, что проектировать можно и так, и эдак. Но, главное, что ты также будешь знать последствия того или иного варианта проектирования, т.е. чем эти варианты тебе грозят при доработке и сопровождении. И главное не проектировать так, чтобы эти самые "доработка и сопровождение" были невозможными.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36420994
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я это понимаю , хоть и новичёк поэтому пришёл посоветоваться у старших.
Желание есть разобраться в БД, но нету столько времени что-бы все прочувствовать все тонкости.
Остановлюсь на варианте с 1 таблецей и сложным SQL запросом.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421010
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lagorue,

Запросы к одной таблице проще всего. Там другие неудобства - долгий и, возможно, неправильный ввод данных.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421190
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен сложный запрос он долгий,но у меня данных не так много поэтому для меня сойдёт.
А вот в чём проявляется что запросы не отрабатываются или плохо срабатывают ?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421510
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueпо вашему я не правильно составил дизайн баззы?
И это еще ооочень мягко сказано...
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421528
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaИ это еще ооочень мягко сказано...
Ну , а посоветовать можете как правильно сделать.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421555
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueНу , а посоветовать можете как правильно сделать.
Наверное вот так
Коллега... ;)
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421560
Фотография Taper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorue,
lagorue
Ну , а посоветовать можете как правильно сделать.
В самом простом на мой взгляд варианте вы можете наполнить тестовыми (раз у вас учебная база) данными плоскую таблицу (как вы изначально сделали). Строк этак 50-100, причем в Microsoft Access, а потом запустите мастер разделения таблиц и посмотрите, что в итоге получится.
А вообще, если вас интересует вопрос проектирования баз данных, лучше этого - www.citforum.ru/database/dblearn/index.shtml - материала по краткости, доступности и понятности я еще не встречал.
не важно
Решение высосанное из пальца, как и проблема - функция анализа звучания (в скуле зовется Soundex)
В 2000 SQL Server эта функция анализировала только английский язык, теперь иначе дело стало?
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421852
не важно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВ 2000 SQL Server эта функция анализировала только английский язык, теперь иначе дело стало?
Ага. только в 2000 же году была сделана аналогичная по функционалу функция для обработки слов в кириллице. но к чему тут это расписывать? тем кто надо - тот и так понял о чем речь была.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421875
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идёт о задании для изучения БД и SQL можно долго дискутировать и несомненно с пользой для дела(познания), но меня подобное всегда наводит на мысль о том, что я не могу представить контору так интенсивно потребляющую картриджи, чтоб вся информация об этом за 10лет заняла более 10% в озу современного компа и как её положить абсолютно не важно, но это уже ФЛУД на форуме SQL.ru
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421935
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vika VinnerНаверное вот так
Коллега... ;)
Да у меня с самого начала такие мысли и были,разделить все по таблицам.
Сбили с толку меня.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421940
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueНу , а посоветовать можете как правильно сделать.
Тебе уже много раз и не я один, писали - расскажи про "жизнь" твоих картриджей. После этого тебе предложат варианты хранения.
Поскольку без знания предметной области структуру хранения путёво не построить.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36421973
lagorue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaТебе уже много раз и не я один, писали - расскажи про "жизнь" твоих картриджей. После этого тебе предложат варианты хранения.
Поскольку без знания предметной области структуру хранения путёво не построить.
Да всё просто у меня.
Пришёл катридж , израсходовали - заправили.
Учёт и списание их не нужно, отслеживать их перемещение нет физ. возможности.
Сейчас сижу думаю сколько таблиц сделать и связывать ключами.
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36422030
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lagorueДа всё просто у меня.
Так все думают сначала...

Как вариант така схема...

ОтделыКодНазвание
ПринтерыКодНазваниеИнвентарный номер
Распределение принтеровКодДата поступлениеКод отделаКод принтера
"Состояние" картриджаКодНазвание
"Движение" картриджа в принтереКодДатаКод принтераКод состояния
И то, если сам картридж не интересен как "элемент системы"...
...
Рейтинг: 0 / 0
нужен совет по проектированию небольшой Б.Д.
    #36422455
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A1ek5andr0lagorue,

WAREHOUSEIDCART_IDDEPT_ID

DEPARTMENTIDNAME

PRINTERIDNAME

CARTRIGEIDNAMEPRINTER_IDACTIVEDATE

Как-то так. и связать форейн кеями.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
WITH 
WAREHOUSE AS
   (
      SELECT  1  id,  1  cart_id,  1  dept_id FROM dual UNION ALL
      SELECT  2  id,  1  cart_id,  1  dept_id FROM dual UNION ALL
      SELECT  3  id,  2  cart_id,  2  dept_id FROM dual UNION ALL
      SELECT  4  id,  2  cart_id,  2  dept_id FROM dual UNION ALL
      SELECT  5  id,  3  cart_id,  3  dept_id FROM dual
   ), 

DEPARTMENT as
  (
    select  1  id, 'OTK' nname from dual union all
    select  2  id, 'ROOM 4' nname from dual union all
    select  3  id, 'ROOM 6' nname from dual
  ),

PRINTER as
  (
    select  1  id, 'HP' nname from dual union all
    select  2  id, 'CANON' nname from dual
  ),

CARTRIGE as
  (
    select  1  id, 'cart1' nname,  1  printer_id, 'Y' active, trunc(sysdate) DDATE from dual union all
    select  2  id, 'cart2' nname,  2  printer_id, 'Y' active, trunc(sysdate) DDATE from dual union all
    select  3  id, 'cart3' nname,  2  printer_id, 'Y' active, trunc(sysdate) DDATE from dual union all
    select  4  id, 'cart4' nname,  3  printer_id, 'Y' active, trunc(sysdate) DDATE from dual
  )

select 
  (select DEPARTMENT.nname from DEPARTMENT where DEPARTMENT.id = WAREHOUSE.dept_id) dep,
  PRINTER.nname,
  CARTRIGE.DDATE,
  count( 1 ) as koll_vo
from WAREHOUSE, CARTRIGE, PRINTER
where WAREHOUSE.cart_id = CARTRIGE.id
  and PRINTER.id = CARTRIGE.printer_id
  and CARTRIGE.DDATE BETWEEN to_date('01.01.2010','dd.mm.yyyy') and to_date('31.01.2010','dd.mm.yyyy')
group by WAREHOUSE.dept_id, CARTRIGE.DDATE, PRINTER.nname
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / нужен совет по проектированию небольшой Б.Д.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]