2016-09-29 3 views
-2

Ich möchte ein Abfrageergebnis, insbesondere die RMA-Nummer (oe_line.order_no) aus Abfrage1 nehmen und dann dieses Ergebnis in der Abfrage2 where -Anweisung verwenden und dann beide Abfragen zusammenfügen . Hier ist mein Code;Kombinieren eines SQL-Abfrageergebnisses in eine andere Abfrage - Join

select * 
from 
(
SELECT 
    customer.customer_name 'Customer Name', 
    invoice_line.invoice_no 'Invoice Number', 
    invoice_line.order_no 'Invoice Order Number', 
    invoice_line.qty_requested 'Invioice Qty Ordered', 
    invoice_line.extended_price 'Invoice Extended Price', 
    invoice_line.item_desc 'Invoice Item Desc', 
    oe_hdr.taker 'Order Taker', 
    oe_hdr.location_id 'Sales Location ID', 
    oe_hdr.source_location_id 'Source Location ID', 
    oe_line.order_no 'RMA Number', 
    oe_line.qty_ordered 'RMA Quantity', 
    oe_line.extended_price 'RMA Extended Price', 
    oe_line.extended_desc 'Extended Desc' 

FROM oe_line 

INNER JOIN oe_line_rma ON (oe_line_rma.oe_line_uid = oe_line.oe_line_uid) 
INNER JOIN invoice_line ON (invoice_line.invoice_line_uid = oe_line_rma.invoice_line_uid) 
INNER JOIN oe_hdr ON (oe_hdr.order_no = oe_line.order_no) 
INNER JOIN customer ON (customer.customer_id = oe_hdr.customer_id) 

where CONVERT(varchar(10), oe_line_rma.date_created,101) = '09/22/2016' /* CONVERT(VARCHAR(10),GETDATE(),101)*/ 
) rsQuery1 
FULL OUTER JOIN 
(
SELECT 
    oe_hdr.order_no, oe_hdr.taker 'RMA Order Taker', 
    oe_hdr.location_id 'RMA Credit Location', 
    oe_hdr.source_location_id 'RMA Source Location' 
from oe_hdr 
where oe_hdr.order_no = rsQuery1.[RMA Number] /* result from RMA Number on rsQuery1 */ 
) rsQuery2 on rsQuery1.[RMA Number] = rsQuery2.order_no 

Meine gewünschte Ausgabe würde dies so aussehen;

| Customer Name | Invoice Number | Invoice Order Number | Invoice Qty Ordered | Invoice Extended Price | Invoice Item Desc | Order Taker | Sales Location ID | Source Location ID | RMA Number | RMA Quantity | RMA Extended Price | Extended Desc | Order_no | RMA Order Taker | RMA Credit Location | RMA Source Location | 
|---------------|----------------|----------------------|---------------------|------------------------|-------------------|-------------|-------------------|--------------------|------------|--------------|--------------------|----|-------------|----------|-----------------|---------------------|---------------------| 
| ABC Company |  4236 |    55995 |     10 |     2000 | Metallic Rings | asmith  |    10 |     10 |  6785 |   -10 |    -2000 | Metallic Rings |  6785 | asmith   |     10 |     10 | 

Ich kann diese Ausgabe derzeit erreichen, indem ich die Werte in den where-Anweisungen der Abfragen manuell abgleiche. Um die Ausgabe zu erzeugen;

rsQuery1 wo invoice_line.invoice_no = ‚4236‘ rsQuery2 wo oe_hdr.order_no ‚6785‘ =

Mein Ziel, um Daten in rsQuery1 ist auf der Grundlage der rma Erstellungsdatum = heute und nehmen Sie das Ergebnis zu erzeugen das Ergebnis für rsQuery2 aus der RMA-Nummer. Ich werde diese Daten schließlich in eine Tabelle legen, um einen Bericht zu erstellen.

+0

Zeigen Sie uns einige Beispieldaten und erwartetes Ergebnis. Versuchen Sie, ein kleines reproduzierbares Beispiel zu erstellen, damit Sie den Prozess lernen und auf Ihr Problem anwenden können. Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http : //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie die Qualität Ihrer Fragen verbessern und bessere Antworten erhalten. –

+0

Danke für die Tipps. – Tech77

+0

Sie nicht verstehen, was es einfach bedeuten :( –

Antwort

1

Was ich verstehe, ist so etwas. Jetzt ist die Verbindung, die Sie wollen, nicht klar.

SELECT * 
    FROM tableA 
    WHERE tableA.RMA = (SELECT RMA 
         FROM tableB 
         WHERE <somecondition>) 
+0

Ich muss mehrere Spalten von tableB zurückgeben. Im Wesentlichen ein neuer Datensatz in Tabelle A für eine Bestellung und die damit verbundene RMA erstellt wird Ich denke, ich brauche die RMA-Nummer von einer Haupt-Abfrage und dann Requery-TabelleA mit dieser RMA-Nummer zu erhalten, während einige der gleichen Spalten, um die Daten zu zeigen und zu vergleichen. Vielen Dank für Ihre Ideen. – Tech77

Verwandte Themen