Форум: "Прочее";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];
Вниззнатокам SQL Найти похожие ветки
← →
VirEx © (2008-08-02 18:08) [0]есть справочник:
Одежда (код, наименование)
и три таблицы:
Сотрудник (код, ФИО)
Выдано_одежды (код_сотрудника, код_одежды)
Возвращено_одежды (код_сотрудника, код_одежды)
необходимо вывести таблицу списка одежды у конкретного сотрудника в данный момент
допустим было три записи:
иванову выдана пара валенок
иванову выдали шапку ушанку
у иванова изъяли пару валенок
выводится таблица о том что у иванова есть только шапка ушанка
подскажите решение, т.е. код SQL и вобще возможно ли такое (Access)
← →
Anatoly Podgoretsky © (2008-08-02 18:15) [1]> VirEx (02.08.2008 18:08:00) [0]
Шутник, ты у кого учился?
← →
Zeqfreed © (2008-08-02 18:20) [2]Самый очевидный вариант это вложенный запрос :)
select * from given where cid not in (select cid from taken WHERE eid = 0);
← →
Сергей М. © (2008-08-02 18:23) [3]
> возможно ли такое
Возможно.
Но структура твоей базы для этого не годится - ее надо выкинуть в топку и разработать с нуля.
← →
easy © (2008-08-02 18:48) [4]
SELECT Сотрудник.ФИО, Одежда.наименование
FROM (Выдано_одежды INNER JOIN Сотрудник ON Выдано_одежды.код_сотрудника = Сотрудник.Код)
INNER JOIN Одежда ON Выдано_одежды.код_одежды = Одежда.Код
WHERE
Одежда.Код NOT IN (SELECT Возвращено_одежды.код_одежды FROM Возвращено_одежды WHERE Возвращено_одежды.код_сотрудника = Сотрудник.Код);
← →
tesseract © (2008-08-02 18:53) [5]
> необходимо вывести таблицу списка одежды у конкретного сотрудника
> в данный момент
Мдя, у меня задачи - степень износа посчитать, амортизацию и прогнозировать затраны на форменку с учётом налогов.
← →
Сергей М. © (2008-08-02 18:55) [6]
> easy © (02.08.08 18:48) [4]
Не получится)
Каптёр сядет за недостачу, если обнаружится, что з/к Иванову было выдано две ушанки, а фактически возвращена одна - отчет по движению ушанок при этом будет девственно чист)
← →
easy © (2008-08-02 19:06) [7]нафиг иванову 2 ушанки? о_о
← →
easy © (2008-08-02 19:07) [8]нормально всё. все ушанки наместе..
← →
Сергей М. © (2008-08-02 19:09) [9]
> easy © (02.08.08 19:06) [7]
Иванову не знаю, а вот каптёру сгодится, лишь бы по отчетности все было чики-пики на момент проверки)
← →
Anatoly Podgoretsky © (2008-08-02 19:10) [10]> easy (02.08.2008 19:06:07) [7]
Так у обычного человека уха два
← →
Сергей М. © (2008-08-02 19:15) [11]
> все ушанки наместе.
Ну где же на месте ?
> Одежда.Код NOT IN (SELECT Возвращено_одежды.код_одежды FROM
> Возвращено_одежды WHERE Возвращено_одежды.код_сотрудника
> = Сотрудник.Код);
Читаем это условие по-простонародному: в случае если код одежды, фигурирующий в списке выданной, не фигурирует в списке возвращенной.
Выдано две ушанки, возвращена одна - в обеих таблицах код ушанки, пришпиленный к Иванову, фигурирует. Условие не соблюдается, значит НД пуст.
← →
easy © (2008-08-02 19:18) [12]
> Сергей М. © (02.08.08 19:15) [11]
хм..
← →
easy © (2008-08-02 19:19) [13]тогда на ушанках надо проставить инвентарный номер
← →
Simpson © (2008-08-02 19:24) [14]easy © (02.08.08 19:19) [13]
И GPS датчики, и можно начинать охоту на лис))
← →
easy © (2008-08-02 19:36) [15]
> И GPS датчики
лучше магнитолу встроить, она по форме и размеру какраз подходит..
← →
VirEx © (2008-08-02 20:00) [16]
> [2] Zeqfreed © (02.08.08 18:20)
> Самый очевидный вариант это вложенный запрос :)
> select * from given where cid not in (select cid from taken
> WHERE eid = 0);
а можно расшифровать cid eid?
← →
Правильный$Вася (2008-08-02 20:12) [17]нет дат совершения операций, без этого можно навыдавать много, вернуть одну - и остальные присвоить, как уже говорилось
← →
palva © (2008-08-02 20:35) [18]При возврате шапки должен срабатывать триггер, который проверяет, что есть, что возвращать.
← →
blackman © (2008-08-02 21:02) [19]palva © (02.08.08 20:35) [18]
А при получении, что есть на что одевать?
← →
Johnmen © (2008-08-02 21:15) [20]
> palva © (02.08.08 20:35) [18]
> При возврате шапки должен срабатывать триггер,
Тетя Клава надежнее. В плане срабатываний...
← →
Сергей М. © (2008-08-02 21:54) [21]
> Тетя Клава надежнее. В плане срабатываний
Картина маслом - Клавдия Ивановна Триггер на страже капиталистической собственности)
← →
Сергей М. © (2008-08-02 21:58) [22]
> тогда на ушанках надо проставить инвентарный номер
А тогда см. [3]
)
Прямо-таки напрашивается таблица "Движение ушанок".
з/к Иванов получил ушанку намберван ? +1
У з/к Иванова изъяли ушанку намберван ? -1
))
← →
Сергей М. © (2008-08-02 22:03) [23]
> VirEx © (02.08.08 20:00) [16]
>
> можно расшифровать cid eid?
>
Можно. Но Штирлиц в отпуске)
А пока он там, чеши репу над структурой единой "Таблицы движения ушанок, валенков и прочей лагерной шняги".
Уверяю тебя - оч даже пользительное занятие !
← →
Zeqfreed © (2008-08-02 22:06) [24]> VirEx © (02.08.08 20:00) [16]
Можно, но смотри [3] и [6].
← →
Павел Калугин © (2008-08-03 02:49) [25]а количества нету? тогда выдача-возврат только по 1
select sum(oper), код сотр, код одежды
from (select 1 as oper, код сотр, код одежды from выдано
union all
select -1 as oper, код сотр, код одежды from возвращено) as op
group by код сотр, код одежды
но лучше операции все же в одной табличке держать с признаком направления и количеством выданного. тогда почти проводки бухгалтерские получатся
← →
Павел Калугин © (2008-08-03 02:51) [26]забыл последнюю строчку
select sum(oper), код сотр, код одежды
from (select 1 as oper, код сотр, код одежды from выдано
union all
select -1 as oper, код сотр, код одежды from возвращено) as op
group by код сотр, код одежды
having sum(oper) != 0
← →
Johnmen © (2008-08-03 03:11) [27]
> Павел Калугин © (03.08.08 02:49) [25]
Спасибо тебе, добрый человек! Не оставил в сирости и убогости!
← →
Павел Калугин © (2008-08-03 10:09) [28]
> Johnmen © (03.08.08 03:11) [27]
не понял сарказма......
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.008 c