2016-06-24 9 views
0

ich habe 2 Tabellen:durch eine Spalte erste drei Werte auswählen, um

med
CREATE TABLE med 
(id_med INT AUTO_INCREMENT PRIMARY KEY, 
name_m VARCHAR(50), 
surname_m VARCHAR(50), 
spec VARCHAR(50), 
UNIQUE (surname_m,name_m)); 

nämlich

CREATE TABLE viz 
(id_m INT NOT NULL, 
id_p INT NOT NULL, 
id_c INT NOT NULL, 
dt DATETIME) 

ich brauche die ersten drei Werte für den Fullnamen auszuwählen und zu zählen (id_p) für jede Spezifikation. die folgende Abfrage gibt mir den ersten Wert, aber ich kann nicht sehen, was als nächstes zu tun ist.

jede Antwort wird sehr geschätzt. Danke.

sollte das Ergebnis so aussehen:

fullname  count(id_p)   spec 
    name1    1000   a 
    name2    900   a 
    name3    890   a 
    name4    2000   b 
    name5    600   b 
    name6    200   b 
    name7    100   c 
    name8    60   c 
    name9    59   c 

....

mein aktuelles Ergebnis zeigt:

fullname  count(id_p)  spec 
    name1    1000   a 
    name4    2000   b 
    name7    100   c 
+0

Können Sie die Tabellen mit Daten ausfüllen und ein Beispiel geben, was Ihre Abfrage zurückgeben soll. –

+0

also, was ist Ihr Ergebnis wird entsprechend Ihrer aktuellen Abfrage angezeigt? –

+0

Wie sehen Ihre Originaldaten aus? – shmosel

Antwort

0

mit einer Unterabfrage Mitglied werden, die die ersten drei Werte der zurück spec Spalte.

SELECT DISTINCT CONCAT(name_m, ' ', 'surname_m) AS fullname, COUNT(id_p) AS no, m1.spec 
FROM med AS m1 
JOIN viz AS v ON m1.id_med = v.id_m 
JOIN (SELECT DISTINCT spec 
     FROM med 
     ORDER BY spec 
     LIMIT 3) AS m2 ON m1.spec = m2.spec 
WHERE YEAR(v1.dt) = 2005 
GROUP BY fullname, m1.spec 
ORDER BY fullname, m1.spec 
+0

danke für deine antwort. es funktioniert nicht, weil 'spec' von med table nicht viz ist. – k4br4s

+0

Ups, ich war verwirrt. Probieren Sie es jetzt. – Barmar

+0

Jetzt gibt es Fehlercode 1052. Spalte 'spec' in Feldliste ist mehrdeutig. Ich denke, das könnte mit einer Gewerkschaft gemacht werden. Ich werde weiterlesen und mit einer Antwort zurückkommen. – k4br4s

Verwandte Themen