Datum vergleichen.

uw-soft

Grünschnabel
Hallo miteinander


Habe das folgende Problem:

Ich sollte aus der Tabelle "Eingangskontrollen" alle Daten nehmen und mit der Tabelle "Endmontage2" die Seriennummer vergleichen. Diejenigen Nummern die in beiden Tabellen vorhanden sind, sollte auch noch bei beiden das "Datum" verglichen werden.

Am schluss sollen alle Serienummern angezeigt werden, in denen das "Datum" in der "Endmontage2" jünger sind als das "Datum" in der "Eingangskontrollen".

Ich hoffe ihr könnt mit helfen



Gruss

Martin
 
Handelt es sich um mysql? Dann sollte das evtl weiterhelfen
PHP:
mysql_query('SELECT eingangskontrolle.*, endmontage2.* FROM eingangskontrolle, endmontage2 where eingangskontrolle.seriennummer=enmontage2.seriennummer and eingangskontrolle.datum>enmontage2.datum');
Ungetestet, sollte aber an sich vom Funktionsablauf her klar sein.

Möglich ist auch ein subquery oder die Join methode
 
teilweise erfüllung

Jetzt sollte man aber nur die Serienummer mit der letzten ID aufrufen. Also wenn die SN 3 dreimal drin ist mit ID 3, 10, 20 dann sollte nur die höchste verglichen werden.


Gruss Martin
 
Nicht geklappt

Sorry, SQL ist "noch" nicht meine Stärke (Accessuser) deswegen stehe ich noch auf dem schlauch, wie funktioniert das geanu mit dem where einfügen?
 
du wählst also die daten die du brauchst per select
('select * from xxx');

angenommen du hast da 100000000000 Datensätze die alle une unterschiedliche SN haben, aber du weißt genau, welche du brauchst, nähmlich die zwischen 569700 und 569900.
Daher ist es dann sinnvoll eine where Bedingung zu machen die auch nur diese Datensätze anzeigt sprich wo die SN>569783 und die SN<569783 ist. Gibt auch noch ein between, aber da weiß ich net ganz so genau bescheid

('select * from xxx where SN>569783 and SN<569783')
 
das ist klar

das war schon klar, nur wie ich die Anweisung die du oben geschrieben hast einfüge war nicht resp. ist nicht klar.

Kannst du mir dies genauer erklären. Normale Where ist nicht das Problem!

Gruss

Martin
 
Langsam gehts

Also habe jetzt 2 Abfragen die ich verbinden sollte:
1. Abfrage (herausfiltern des heutigen Datums)

SELECT ID,[STS-Nr], [Date-import] FROM Tblreflektrode WHERE ([Date-import]IN (SELECT LEFT(getdate(), 11) AS [Datum]))

2. Abfrage (Herausfiltern der möglichen Serienummern)
SELECT TOP 100 PERCENT dbo.Eingangskontrollen.Serienummer, MAX(dbo.Eingangskontrollen.[ID-Nummer]) AS ID
FROM dbo.Eingangskontrollen INNER JOIN
dbo.endmontage2 ON dbo.Eingangskontrollen.Serienummer = dbo.endmontage2.Serienummer AND
dbo.Eingangskontrollen.Datum > dbo.endmontage2.Datum
GROUP BY dbo.Eingangskontrollen.Serienummer
ORDER BY dbo.Eingangskontrollen.Serienummer

Jetzt müsste ich die 2. in die erste Intergrieren können, so dass in der zweiten nur noch die Serienummern ([STS-Nr]) der ersten abfrage gesucht werden.

wenn ich des weiss, dann sollte es eigentlich wieder ein bisschen klarer sein.

Code der Webseite ist in PHP und DB ist SQL.

Gruss Martin
 
achso, na mal schauen ob ich dich eben verstanden habe
PHP:
mysql_query('SELECT eingangskontrolle.*, endmontage2.* FROM eingangskontrolle, endmontage2 where endmontage2.seriennummer=eingangskontrolle.seriennummer and endmontage2.datum<eingangskontrolle.datum');

Du willst ja die GLEICHEN Seriennummern aus der Endmonatge2 haben die auch in der Eingangskontrolle sind. Dazu wählst du die Datensaätze so aus >>endmontage2.sn=eingangskontrolle.sn<< sprich, wo die em2.SN die gleiche SN hat wie die ek.SN.
Nun hast du alle Datensätze wo die SNs gleich sind. Zusätzlich willst du aber noch, das nur diese ausgewählt werden wo das Datum kleiner ist als in der Eingangskontrolle. Dazu nimmst du dann das gleiche Beispiel wie eben nur >>endmontage2.datum<eingangskontrolle.datum<<

Weiß nicht wie ich das genauer erklären soll :)
 

Neue Beiträge

Zurück