2016-11-23 4 views
0

Editiert: 11/23/2016 10:32Sub-Abfrage Vlookup

Ok, damit ich bin neu in SQL und haben die Grundlagen ziemlich gut darin geworden, aber etwas Hilfe benötigen, diese Analyse von Excel auf sich bewegenden Basis abfragen. Ich denke, das erfordert eine WITH-Anweisung und ich habe nur die Erlaubnis mit unseren Daten, um Aussagen zu sehen/auszuwählen. Also müsste meine Abfrage eine sitzungsbasierte Ansicht sein.

Ich habe zwei Abfragen [Install Query] und [Service Query], die ich in Excel importieren. InstallQuery 1: Excel-Tabelle 1 Service Query 2: Excel-Tabelle 2

die beiden Abfragen sind die gleichen exept sie Differnt haben, wo die Bedingungen

Install Query

Service table

die Verbindung zwischen den beiden Excel-Sheets ist (Site-Nummer) denken, dies als eine numerische Adresse gleichwertig.

Ich möchte berechnen, wie viele unserer Install Jobs einen Service-Aufruf in 60 Tagen haben. In Excel führe ich das aus, indem ich zuerst das Installations-Abfragebogen 1 nehme und eine neue berechnete Spalte "Warrant-Datum" einfüge, die die vorhandene Datumsspalte "Vor-Ort" übernimmt und 60 Tage hinzufügt. Was ist wie folgt: Vor-Ort-Datum + 60 Tage = Garantie Datum.

Dann vlookup die Site-Nummer von der Installation Abfrageblatt 1 auf dem Service-Abfrage-Blatt 2, wenn es eine Übereinstimmung findet, vergleichen ich das Service-Datum mit dem Installationsdatum. Mit Hilfe der Logik unten in einer neuen Spalte „Garantiedeckung“ genannt Wenn Service Datum < = Garantie Datum dann „Covered“ else „Nicht abgedeckt“

Aktuelle Ergebnisse sind in der Tabelle Blatt installiert mit in Excel mit allen Spalten aus der Tabelle mit dem Zusatz von Säulenabdeckung Garantie

Dank Install

Antwort

0

Dies genau ist die Verwendung einer case-Anweisung ist - Ihnen eine abgeleitete Spalte auf den relevanten Kriterien zu geben. Verknüpfen Sie die Tabellen auf der entsprechenden Spalte, dann die Ergebnisse wählen Sie wollen - in diesem Beispiel (ich habe die Tabellen für Klarheit aliased):

SELECT ST.* 
      ,CASE 
       WHEN [Service Date] <= [Warranty Date] 
        THEN 'Covered' 
       ELSE 'Not Covered' 
       END as 'Warranty coverage' 
     FROM [Install table] AS IT 
     INNER JOIN [Service table] AS ST 
      ON IT.[site number] = ST.[site number] 
+0

sprach ich vermisse meine Tabellen Excel-Tabellen sind, die ich durch zwei Abfragen zu füllen Das sind im Grunde die gleichen, die nur unterschiedliche "Wo" -Bedingungen haben, aber alles andere ist dasselbe, einschließlich der "Von" -Anweisung – BrettF