Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z zapytaniem, sumowanie w rekordzie :(
ergovision
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


Witam!
musze uzuwac MS sql server.....
Takie mam problemy:

1.Jak zrobic zapytanie obliczjace kto najdluzej pracuje majac dana date zatrudnienia.

2.Mam tabele, w której 1 oznacza ze dany pracownik był obecny a 0 ze nie,
kazdy wiersz to jeden pracownik,
Jak skonstruowac zapytanie , ktore pozwoli zliczac kto i ile dni nie był w pracy.
oto kodzik:)

CREATE TABLE obecnosc(
id_dzien_rob smallint NOT NULL default '0',
id_pracownik smallint NOT NULL default '0',
s1 int NOT NULL default'',
s2 int NOT NULL default'' ,
s3 int NOT NULL default'' ,
s4 int NOT NULL default'' ,
s5 int NOT NULL default'' ,
s6 int NOT NULL default'' ,
....
s30 int NOT NULL default'' ,
s31 int NOT NULL default'' ,
PRIMARY KEY (id_dzien_rob)
);

wypełnienie:

INSERT INTO obecnosc VALUES(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(3,3,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(4,4,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(5,5,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(6,6,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(7,7,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(9,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(10,10,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
INSERT INTO obecnosc VALUES(11,11,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);

Ps: kazdy wiersz to jeden pracownik
Z góry dziekuje!
POZDRAWIAM

Ten post edytował ergovision 28.12.2004, 18:48:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
popbart
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

Ostrzeżenie: (0%)
-----


blink.gif Poroniona struktura tabeli. Każdy wiersz powinien być dniem obecności dla danego pracownika. Z tym tworem to tylko do kosza tongue.gif


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
ergovision
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


Maialem tak ale wtedy nie było jak relacji zrobic.....
ale juz sobie z tym poradziłem jakos...

A jak rozwiazac problem z data?

Pozdrawiam!
Go to the top of the page
+Quote Post
popbart
post
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

Ostrzeżenie: (0%)
-----


Jak to nie ma jak relacji zrobić?
tabela obecnosc:
id_obecnosci | id_pracownika | data | obecnosc

Cytat
Jak skonstruowac zapytanie , ktore pozwoli zliczac kto i ile dni nie był w pracy.

a teraz jak łatwo zapytanie zrobić:
  1. SELECT id_pracownik,count(obecnosc)
  2.  
  3. FROM obecnosc WHERE obecnosc=0 //mozna dodac zakres datowy
  4. GROUP BY id_pracownik


Cytat
1.Jak zrobic zapytanie obliczjace kto najdluzej pracuje majac dana date zatrudnienia

odp:
  1. SELECT id_pracownik, data_zatrudnienia
  2. FROM pracownik WHERE data_zatrudnienia IN(SELECT min(data_zatrudnienia)
  3. FROM pracownik)

Pozdrawiam smile.gif


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 14:58