Ich habe 3 Tabellen, die ich schließe, um die Daten zu erhalten, die ich will, company_details, officer_details und company_officer, die die beiden verbinden. Meine Anfrage nimmt jetzt Offiziere, die für mehr als 2 Firmen arbeiten und nicht zurückgetreten sind.Auswahl weglassen, wenn weniger als 2 Werte gefunden werden
Ich möchte zu dieser Abfrage hinzufügen, um nur Unternehmen zu erhalten, die mehr als 1 Arbeiter haben (nach der Anwendung aller vorherigen Anforderungen). S
Company_Details
Officer_Details
SELECT
CD.Company_ID,
CD.Company_Name,
CD.Company_Index,
OD.Officer_ID,
OD.Officer_Name,
CO.Officer_Role
FROM
Company_Details CD
INNER JOIN Company_Officer CO
ON CD.Company_ID = CO.Company_ID
INNER JOIN Officer_Details OD
ON CO.Officer_ID = OD.Officer_ID
WHERE CD.Company_Index<>'' AND
CO.Resigned_On='' AND
CO.Officer_ID IN
(SELECT CO2.officer_id
FROM Company_Officer CO2
INNER JOIN Company_Details CD2
ON CO2.Company_ID = CD2.Company_ID
WHERE CO2.Resigned_On='' AND CD2.Company_Index<>''
GROUP BY CO2.officer_id
HAVING Count(DISTINCT CO2.company_id) > 1
)
ORDER BY `CD`.`Company_Name` ASC, `CD`.`Company_ID` ASC;
Im i Magier unten sehen Sie das Ergebnis meiner aktuellen Anfrage. Die hervorgehobenen 2 Zeilen möchte ich weglassen, da man sieht, dass diese Firmen nur einen Angestellten haben und ich mich von dieser Auswahl von Firmen mit nur einem Angestellten befreien will.
Danke für die Antwort, aber ich habe habe das gerade ausprobiert und ich bekomme 1052 Ergebnisse, das ist das selbe wie meine Abfrage. Firmen mit einzelnen Mitarbeitern werden nicht ausgelassen. – Higeath
Hatte das existiert rückwärts, versuchen Sie es erneut –
Die ältere Abfrage gibt mir noch 1052 Ergebnisse und die neue 390 aber es hielt immer noch alle diese Unternehmen mit einem Mitarbeiter. – Higeath