CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
14.08.2014, 09:46:25
|
|
nur Wert anzeigen, sofern er drai mal vorkommt
Hallo,
ich habe eine SQL Abfrage, die soweit funktioniert.
Diese listet alle Tickets auf von Geräten, die 30 Tage in der Vergangenheit bis heute liegen.
Ich möchte nun nur die Tickets inkl. den Geräten angezeigt haben, die öfters als 3 mal in diesem Zeitraum vorkommen.
Danke
|
14.08.2014, 10:06:10
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
HAVING ist Dein Freund. Und ein SQL-Buch.
|
14.08.2014, 10:57:34
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
ich habe schon mehrere SQL Bücher in der Hand gehabt,
leider habe ich keine Lösung meines Problems.
Habe bereits mit Having probiert, aber das Ergebnis ist falsch.
|
14.08.2014, 11:02:25
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
hier mal mein Code:
Code:
SELECT AN, RN, MN, SN, MB, Fehler, Datum
FROM Auftragskoepfe ak
INNER JOIN AM
ON AM.AN = ak.AN
WHERE ak.Datum > (GETDATE()-30)
ORDER BY ak.MN desc
Hier zeigt er mir das richtige Ergebnis an, aber halt alle MN, die auch in der Zeit nur einmal vorkommen. Ich möchte jetzt nur die agezeigt haben, die 3 mal oder mehr vorkommen.
Durch den Zusatz:
GROUP BY AN, RN, SN, MB, Fehler, Datum, MN HAVING count( * ) >=3
kommt nichts mehr als Ergebnis
|
14.08.2014, 11:09:50
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
Logisch. Ist ja auch syntaktisch / logisch falsch.
|
14.08.2014, 11:38:10
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
so und jetzt müsste ich wissen wie es richtig ist
|
14.08.2014, 11:43:22
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
habe das noch getestet, aber er ignoriert das GETDATE() -30 und zeigt mir alle Datumswerte an.
Code:
SELECT am.AN, ak.RN, am.MN, am.SN, am.MB, am.Fehlertext, ak.Datum
FROM ak
INNER JOIN am
ON am.AN = ak.AN
WHERE am.MN IN
(SELECT am.MN
FROM am
INNER JOIN ako
ON ako.AN = am.AN
WHERE ako.Datum > (GETDATE() -30)
GROUP BY am.MN HAVING COUNT(am.MN) > 3)
ORDER BY am.Maschinennummer desc
|
14.08.2014, 11:45:10
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
Zitat:
Zitat von istuggi
so und jetzt müsste ich wissen wie es richtig ist
|
als demo:
Code:
test=*# select * from master ;
id
----
1
2
(2 rows)
test=*# select * from slave ;
m_id
------
1
1
2
2
2
2
(6 rows)
test=*# select * from master m inner join (select m_id, count(*) from slave group by m_id having count(*) > 2) s on m.id=s.m_id;
id | m_id | count
----+------+-------
2 | 2 | 4
(1 row)
Das anzupassen überlasse ich dir zur Übung. Der Bedarf ist ja da.
|
14.08.2014, 11:56:14
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
sorry ich glaube du verstehst mich falsch, hier nochmals:
habe ein ergebnis, was so aussieht:
Beispiel:
SN -- MN -- Datum -- Fehler
123 -- 456 -- 01.01.2010 -- funktioniert nicht
123 -- 456 -- 01.01.2014 -- funktioniert nicht
234 -- 888 -- 08.08.2014 -- funktioniert nicht
234 -- 888 -- 14.08.2014 -- funktioniert nicht
234 -- 888 -- 07.08.2014 -- funktioniert nicht
444 -- 544 -- 01.01.2012 -- funktioniert nicht
444 -- 544 -- 01.01.2013 -- funktioniert nicht
444 -- 544 -- 01.08.2014 -- funktioniert nicht
Das Ergebnis soll dann aber nur so aussehen:
SN -- MN -- Datum -- Fehler
234 -- 888 -- 08.08.2014 -- funktioniert nicht
234 -- 888 -- 14.08.2014 -- funktioniert nicht
234 -- 888 -- 07.08.2014 -- funktioniert nicht
Warum? Weil nur diese MN in einem Zeitraum innerhalb der letzten 30 Tage mehr als zwei mal ein fehler gemeldet hat.
Danke
|
14.08.2014, 12:13:35
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: nur Wert anzeigen, sofern er drai mal vorkommt
Zitat:
Zitat von istuggi
sorry ich glaube du verstehst mich falsch, hier nochmals:
Danke
|
Doch, aber Du kannst nicht abstrahieren.
Code:
test=*# select * from istuggi ;
sn | mn | datum
-----+-----+------------
123 | 456 | 2010-01-01
123 | 456 | 2014-01-01
234 | 888 | 2014-08-08
234 | 888 | 2014-08-14
234 | 888 | 2014-08-07
444 | 544 | 2012-01-01
444 | 544 | 2013-01-01
444 | 544 | 2014-08-01
(8 rows)
test=*# select * from istuggi where (sn, mn) in (select sn, mn from istuggi where datum > current_date - 30 group by 1,2 having count(*) >=3);
sn | mn | datum
-----+-----+------------
234 | 888 | 2014-08-08
234 | 888 | 2014-08-14
234 | 888 | 2014-08-07
(3 rows)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:20:13 Uhr.
|