есть две базы - мастер
CREATE TABLE OtpyckMaster (
FIO VARCHAR(70),
Zex VARCHAR(50),
Kategoriya VARCHAR(40),
Pocada VARCHAR(40),
Oklad FLOAT,
TabN INTEGER,
Ymobu VARCHAR(10),
DniOcn INTEGER,
DniDop INTEGER,
DniSkid INTEGER,
DniMateri INTEGER,
DniInshi INTEGER,
DniAll INTEGER,
DataVuxoda DATE,
Id AUTOINC,
INDEX FIO_ASC (FIO),
INDEX FIO_DESC (FIO DESC)
);
и детал
CREATE TABLE OtpyckFakt (
God INTEGER,
DataNOcn DATE,
DataKOcn DATE,
DniOcn INTEGER,
DniDop INTEGER,
DniSkid INTEGER,
DniMateri INTEGER,
DniInshi INTEGER,
DniAll INTEGER,
DataNAll DATE,
DataKAll DATE,
MasterId INTEGER,
Id AUTOINC
);
ето базы для работы с отпусками - задача такая - надо выбрать всех сотрудников
которые в ,к примеру, 2006 году,поле OtpyckFakt .God,или за период, вообще не были в отпуску,или в которых кол-во дней фактического отпуска OtpyckFakt .DniAll меньше необходимых OtpyckMaster .DniAll.
Я состряпал такой запрос
SELECT OtpyckMaster.FIO,OtpyckFakt.God,OtpyckMaster.DniAll DniM,
OtpyckFakt.DniAll DniF,OtpyckMaster.DniAll-OtpyckFakt.DniAll DniR
FROM OtpyckMaster,OtpyckFakt
WHERE (OtpyckFakt.God NOT IN(2007) OR DniR>0) AND (OtpyckFakt.MasterId=OtpyckMaster.Id)
ORDER BY FIO;
но он выбирает токо тех работников у которых было движение по отпусках в таблице
OtpyckFakt , без строки (OtpyckFakt.MasterId=OtpyckMaster.Id) выбирает вообще все
Всем заранее благодарен за помощь
CREATE TABLE OtpyckMaster (
FIO VARCHAR(70),
Zex VARCHAR(50),
Kategoriya VARCHAR(40),
Pocada VARCHAR(40),
Oklad FLOAT,
TabN INTEGER,
Ymobu VARCHAR(10),
DniOcn INTEGER,
DniDop INTEGER,
DniSkid INTEGER,
DniMateri INTEGER,
DniInshi INTEGER,
DniAll INTEGER,
DataVuxoda DATE,
Id AUTOINC,
INDEX FIO_ASC (FIO),
INDEX FIO_DESC (FIO DESC)
);
и детал
CREATE TABLE OtpyckFakt (
God INTEGER,
DataNOcn DATE,
DataKOcn DATE,
DniOcn INTEGER,
DniDop INTEGER,
DniSkid INTEGER,
DniMateri INTEGER,
DniInshi INTEGER,
DniAll INTEGER,
DataNAll DATE,
DataKAll DATE,
MasterId INTEGER,
Id AUTOINC
);
ето базы для работы с отпусками - задача такая - надо выбрать всех сотрудников
которые в ,к примеру, 2006 году,поле OtpyckFakt .God,или за период, вообще не были в отпуску,или в которых кол-во дней фактического отпуска OtpyckFakt .DniAll меньше необходимых OtpyckMaster .DniAll.
Я состряпал такой запрос
SELECT OtpyckMaster.FIO,OtpyckFakt.God,OtpyckMaster.DniAll DniM,
OtpyckFakt.DniAll DniF,OtpyckMaster.DniAll-OtpyckFakt.DniAll DniR
FROM OtpyckMaster,OtpyckFakt
WHERE (OtpyckFakt.God NOT IN(2007) OR DniR>0) AND (OtpyckFakt.MasterId=OtpyckMaster.Id)
ORDER BY FIO;
но он выбирает токо тех работников у которых было движение по отпусках в таблице
OtpyckFakt , без строки (OtpyckFakt.MasterId=OtpyckMaster.Id) выбирает вообще все
Всем заранее благодарен за помощь