Schrift
[thread]10969[/thread]

SQL-Abfrage formulieren (Seite 2)



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
renee
 2007-12-13 15:14
#103823 #103823
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
bzw. ein '<='
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2007-12-13 22:25
#103856 #103856
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
... vom Prinzip ja. Nur wenn ein Mitarbeiter, wie hier 'Meier' ( ID 1 ) öffters in einer Abteilung tätig war, wie hier im Verkauf vom 1.1. bis 28.2. und dann wieder ab 1.7. spuckt er mir ja zwei Datensätze aus.

So wie ich es sehe werde ich um Unterabfragen und/oder temporäre Tabellen und/oder SELECT in SELECT nicht rumkommen
renee
 2007-12-14 10:05
#103867 #103867
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
MartinR+2007-12-13 21:25:19--
... vom Prinzip ja. Nur wenn ein Mitarbeiter, wie hier 'Meier' ( ID 1 ) öffters in einer Abteilung tätig war, wie hier im Verkauf vom 1.1. bis 28.2. und dann wieder ab 1.7. spuckt er mir ja zwei Datensätze aus.


Nö, hast Du's überhaupt getestet? Da steht nämlich ein "DISTINCT"...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2007-12-14 10:08
#103868 #103868
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das hier habe ich eben gerade mal mit Deinen auf Seite 1 geposteten Daten getestet: [sql] SELECT DISTINCT Personal.p_id, name
FROM Personal, Abteilungen, Zuordnung
WHERE Personal.p_id = Zuordnung.p_id AND
Abteilungen.a_id = Zuordnung.a_id AND
datum <= '2007-04-01' AND
abteilung = 'Verkauf' ORDER BY Personal.p_id, datum DESC[/sql]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2007-12-15 11:59
#103934 #103934
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
renee+2007-12-14 09:05:16--

Nö, hast Du's überhaupt getestet? Da steht nämlich ein "DISTINCT"...


Asche auf mein Haupt. Das habe ich tatsächlich überlesen - und deswegen auch nicht getestet ...

... werde es aber nachholen
MartinR
 2007-12-17 19:11
#103984 #103984
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
So, nun hab ich es ausprobiert (MySQL 5.0.32 und eine 4er Version). Das Ergebnis ist

1;Meier
2;Mueller
4;Schmid

Stimmt aber leider nicht, da Meier(1) am 1.4. in der Werbung (2) tätig war ( z_id 2 ) und Mueller(2) eigentlich im Lager(3) gewesen ist ( z_id 5 ). Nur der Schmid stimmt - ist aber wohl eher Zufall ...
renee
 2007-12-17 19:18
#103985 #103985
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Stell mal Deine Daten als SQL-Dump zur Verfügung...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2007-12-17 19:22
#103986 #103986
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
So hab's ich grad ausprobiert ...



CREATE TABLE `x_personal` (
`p_id` tinyint(4) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`p_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


INSERT INTO `x_personal` VALUES (1, 'Meier');
INSERT INTO `x_personal` VALUES (2, 'Mueller');
INSERT INTO `x_personal` VALUES (3, 'Huber');
INSERT INTO `x_personal` VALUES (4, 'Schmid');
INSERT INTO `x_personal` VALUES (5, 'Meister');


CREATE TABLE `x_zuordnung` (
`z_id` tinyint(4) NOT NULL auto_increment,
`p_id` tinyint(4) NOT NULL default '0',
`a_id` tinyint(4) NOT NULL default '0',
`datum` date NOT NULL default '0000-00-00',
PRIMARY KEY (`z_id`),
KEY `a_id` (`p_id`,`a_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;



INSERT INTO `x_zuordnung` VALUES (1, 1, 1, '2007-01-01');
INSERT INTO `x_zuordnung` VALUES (2, 1, 2, '2007-03-01');
INSERT INTO `x_zuordnung` VALUES (3, 1, 5, '2007-06-01');
INSERT INTO `x_zuordnung` VALUES (4, 1, 1, '2007-07-01');
INSERT INTO `x_zuordnung` VALUES (5, 2, 3, '2007-01-01');
INSERT INTO `x_zuordnung` VALUES (6, 3, 2, '2007-01-01');
INSERT INTO `x_zuordnung` VALUES (7, 3, 4, '2007-04-01');
INSERT INTO `x_zuordnung` VALUES (8, 4, 3, '2007-02-01');
INSERT INTO `x_zuordnung` VALUES (9, 4, 1, '2007-03-01');
INSERT INTO `x_zuordnung` VALUES (10, 5, 4, '2007-01-01');
INSERT INTO `x_zuordnung` VALUES (11, 2, 1, '2007-03-01');
INSERT INTO `x_zuordnung` VALUES (12, 2, 3, '2007-05-01');


CREATE TABLE `x_abteilung` (
`a_id` tinyint(4) NOT NULL auto_increment,
`abteilung` varchar(50) NOT NULL default '',
PRIMARY KEY (`a_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


INSERT INTO `x_abteilung` VALUES (1, 'Verkauf');
INSERT INTO `x_abteilung` VALUES (2, 'Werbung');
INSERT INTO `x_abteilung` VALUES (3, 'Lager');
INSERT INTO `x_abteilung` VALUES (4, 'Leitung');
INSERT INTO `x_abteilung` VALUES (5, 'Buchhaltung');





SELECT DISTINCT
P.p_id,
P.name
FROM
x_personal AS P,
x_abteilung AS A,
x_zuordnung AS Z
WHERE
P.p_id = Z.p_id AND
A.a_id = Z.a_id AND
Z.datum <= '2007-04-10' AND
Z.a_id = 1
ORDER BY
P.p_id,
Z.datum DESC
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-12-07 13:30.