2017-01-31 1 views
0

So habe ich zwei Tabes: Part_Stock und Part_Vendor.SQL - So erstellen Sie eine zweite Abfrage basierend auf ersten

Die erste Aufgabe ist es, LAGERBESTAND abzufragen Artikel zurückzugeben, die an einem bestimmten Lagerort gelagert werden (CON1C7C). Sobald die Elemente an dieser Stelle zurückgegeben werden, muß ich die Unternehmen Teilnummer, die auch in dieser Tabelle und Abfrage Part_Vendor, ist zu finden, so dass ich die Teile mit der Unternehmen Teilnummer vom zurückkehren Part_Stock Tabelle und passen Sie es an die Hersteller-Teilenummer, die beide in der Part_Vendor Tabelle befinden.

Zur Zeit habe ich es so, dass ich zu LAGERBESTAND Abfrage die Firma Teilenummern zu bekommen, und dann abfragen, ich Part_Vendor durch manuelle die Unternehmen Teil der Eingabe von Zahlen.

Jetzt gibt es nur noch 6 Teile, also ist es nicht so schlimm, aber irgendwann wird die Liste exponentiell wachsen.

Gibt es eine Möglichkeit, die gleichen Ergebnisse zu erhalten, ohne jede Teilenummer ausschreiben zu müssen?

ich derzeit haben:

enter image description here

Jede Hilfe sehr geschätzt wird.

+2

Bitte verwenden Sie formatierten Text anstelle von Bildern. Kennzeichnen Sie auch die von Ihnen verwendeten dbms. – jarlh

Antwort

-1

Ich gehe davon aus, dass die zweite Tabelle in anderer Datenbank ist (wegen der use EXACTMAXIMET Anweisung)
Sie eine Tabellenvariable erstellen, füllen Sie es mit Part Werten und dann diese Tabelle verwenden, um eine Bedingung für eine andere wählen zu machen.

DECLARE @t TABLE (PartNumber VARCHAR(255)) 

INSERT INTO @t (PartNumber) 
SELECT PartNumber 
FROM [Part_Stock]... 

USE EXACTMAXIMET 

SELECT * 
FROM [Part_Vendor] 
WHERE PRTNUM_07 IN (
     SELECT PartNumber 
     FROM @t 
     ) 
+0

Dies kann zu einer Auswahl vereinfacht werden, wie in @ Siyual Antwort unter – Stephen

+0

Ja, im Allgemeinen ist das besser Ansatz. Aber in manchen Situationen benutze ich diese. Normalerweise, wenn ich Sperren verhindern möchte, die durch das Verbinden von Tabellen aus verschiedenen Datenbanken verursacht werden (z. B. ausgelastete Produktions-DB und Idle Logs DB) – tomassino

0

Was Sie suchen ist ein JOIN:

Select V.* 
From Part_Stock      S 
Join Exactmaximet.dbo.Part_Vendor V On V.Prtnum_07 = S.Prtnum_07 
Where S.Stk_06 Like '%CON1C7C%' 

Anmerkung: Ich eine Annahme mache, dass die Part_Stock Spalte Sie zum Prtnum_07 Wert von ebenfalls Prtnum_07 genannt.

Verwandte Themen