2017-10-01 3 views
2

In der Hoffnung, etwas Hilfe dabei zu bekommen, habe ich ein paar Versuche an einer inneren Verknüpfung gemacht, die alle 'Produkt' Informationen aus der Produkttabelle für jedes Produkt zeigt, das mehr als 10 Einheiten mit einem verkauft hat innere Verbindung.SQL Inner Join 2 Tabellen

PRODUCT TABLE (Columns) 
P_CODE, P_DESCRIPT, P_INDATE, P_QOH, P_MIN, P_PRICE, P_DISCOUNT, V_CODE 

LINE TABLE (Columns) this table shows the lines/information for each 
invoice 

INV_NUMBER, LINE NUMBER, P_CODE, LINE_UNITS, LINE_PRICE, LINE_TOTAL 

Ich verstehe, dass ich auf die Verwendung des gemeinsamen Schlüsselattribut (p_code) beitreten, aber ich kann nicht herausfinden, wie die Summe innerhalb der inneren Verknüpfung zu tun.

Hier ist mein letzter Versuch:

SELECT * PRODUCT FROM PRODUCT 
INNER JOIN line 
ON product.p_code = line.p_code 
WHERE sum(line_units) >=10 
AND line.p_code = product.p_code; 

Fehler: in der Nähe von "Produkt"; Syntaxfehler

Jede Hilfe wäre willkommen, Vielen Dank.

+1

Sollte 10 lesen> = 10> = und höchstwahrscheinlich die ‚aus dem Produkt‘ redundant ist – LukeJ

Antwort

3

Sieht aus, als ob Sie den Tabellenname PRODUCT innerhalb des Abschnitts SELECT haben. Und die sum() muss innerhalb der SELECT Abschnitt zusammen mit der zusätzlichen HAVING Klausel am Ende passieren.

SELECT *, sum(line_units) as line_units_sum FROM product 
INNER JOIN line ON product.p_code = line.p_code 
WHERE line.p_code = product.p_code 
HAVING line_units_sum >= 10 
+0

Vielen Dank, dass die Anfangsfehler behoben, aber jetzt bin ich für meine Summenfunktion "Fehler beim Empfang: Missbrauch von Aggregatfunktion sum() " – LukeJ

+0

Sorry darüber - tatsächlich mokierte die Tabellen und führte die Abfrage lokal erneut. Ich habe die Abfrage aktualisiert, damit sie jetzt funktionieren kann. –

+0

Konnte mit einigen Änderungen zu Ihrer Abfrage genau das bekommen, was ich wollte. Hinzugefügt in 'group by product.p_code' wurde auch * von der Auswahl entfernt und manuell in die Produktattribute eingegeben, die ich zeigen wollte, oder sonst wurden ALLE Attribute sowohl von Produkt als auch von Zeile angezeigt, was vermutlich darauf zurückzuführen ist, dass die Tabellen nun zusammengefügt werden im '*' in der Select-Anweisung, die sowohl Produkt- als auch Linienattribute enthält? - schätzen Sie die Hilfe John. – LukeJ