-
SQL CASE COUNT()
Hallo liebes Forum,
ich hätte gerne eine Nummer SNR aufgelistet wie oft sie in einer anderen Datei(Feld FD1) vorkommt bzw. in Verbindung steht.
Code:
SELECT SNR,
Case when
(Select COUNT(*) FROM BWP, BSP WHERE SNR = FD1) > 0 then COUNT(SNR) else 0 end ,
DAT, TIM FROM BWP, BSP WHERE SNR
= FD1 AND SNR <> ' ' AND DAT >= 0 AND BHND >= 0 OR
(SNR not in(select fd1 from BWP)) GROUP BY SNR ,
DAT, TIM
Anzeige:
Nummer Ausdruck CASE
200 15.341
100 1
Nummer 200 hat keine Verbindung zur anderen Datei, aber da bekomme ich die Maximale Anzahl der Sätze von der ganzen Datei.
Was ist falsch an meinem Statement?
Gruß
Tarki
-
Probiers mal so:
PHP-Code:
SELECT FELD1, COALESCE(ANZAHL, 0)
FROM DATEI1 LEFT OUTER JOIN (
SELECT FELD2, COUNT(*) AS ANZAHL
FROM DATEI2 GROUP BY FELD2) AS D2 ON FELD1=FELD2
-
... alles viel zu kompliziert, ein einfacher subselect tut es:
select e.snr, (select count(*)
from andereTabelle a
where e.snr = a....
...) anzahl, e.nocheinFeld...
from eineTabelle e
D*B
-
Hallo,
der Subselect war auch meine erste Überlegung, aber da bekomme ich in beiden Fällen immer eine 1 zurückgeliefert
Code:
SELECT SNR,
(Select COUNT(*) FROM BWP D, BSP C WHERE D.SNR = C.FD1) ANZAHL,
DAT, TIM FROM BWP A, BSP B
WHERE SNR <> ' ' AND DAT >= 0 AND BHND >= 0 OR
(SNR not in(select fd1 from BWP)) GROUP BY SNR ,
DAT, TIM
-
Du zählst ja auch die falsche Datei!
da BWP auch deine Hauptdatei ist, erhälst du immer die 1.
Du musst die BSP zählen:
(Select COUNT(*) FROM BSP C WHERE A.SNR = C.FD1) ANZAHL,
-
Könnte es nicht sein, das dieser einfache Join ohne Subselect oder Common Table Expression das gewünschte Ergebnis liefert?
Code:
SELECT SNR, Count(Fld1) Anzahl,
DAT, TIM
FROM BWP Left Outer join BSP on SNR = FD1
WHERE SNR <> ' '
AND DAT >= 0
AND BHND >= 0
GROUP BY SNR , DAT, TIM
Birgitta
-
Danke euch allen,
Fürchau hatte damit recht das ich die Falsche Datei zähle. Peinlicher Denkfehler.
Lg
-
@Birgitta
Bei einer 1:N-Beziehung liefert dieser SQL die Daten aus BWP mehrfach, was hier nicht gewünscht wird.
Ein Group By verlangsamt das ganze nur.
Similar Threads
-
By Bobou in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 12-04-11, 13:09
-
By Tobse77 in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 24-09-09, 08:31
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-08-06, 09:34
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By klausgkv in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-06-06, 13:47
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks