Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.21;
Скачать: CL | DM;

Вниз

знатокам 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.017 c
15-1217225599
TUserClass
2008-07-28 10:13
2008.09.21
Скопировать таблицу (без данных) в FB.


3-1206102916
Still Swamp
2008-03-21 15:35
2008.09.21
TParam и BLOB


15-1216973260
miek
2008-07-25 12:07
2008.09.21
NAT для безопасности сети


2-1218013540
witaly
2008-08-06 13:05
2008.09.21
узлы в TreeView


11-1193506922
Rusya
2007-10-27 21:42
2008.09.21
[Error] KOL_ASM.inc(4014)