2016-06-17 2 views
0

Ich habe zwei Tabellen ... cloads und jpurch Ich brauche transactionamount und Transaktionsdatum Spalte aus beiden Tabellen mit einer Abfrage zu ziehen. Die Transaktionen, die ich ziehen muss, müssen zwischen einem Zeitraum von 1-1-2016 und 3-1-2016 liegen. Offensichtlich funktioniert die Abfrage, die ich unten gepostet habe, nicht, da sie nicht einmal die jpurch in der where-Anweisung adressiert. Die Transaktionsdaten müssen nicht übereinstimmen. Ich brauche alle Daten für diese Spalten.Wie Daten aus zwei Tabellen ziehen SQL basierend auf dem Datum

select c.transactiondate, c.transactionamount, d.transactiondate, d.transactionamount 
from cloads c, jpurch d 
where c.transactiondate between '2016-05-01' and '2016-06-06' 
+0

Sie müssen top eine Beziehung zwischen diesen Tabellen mit primären und Fremdschlüssel-Konzept haben. später können Sie SQL JOIN in Ihrer Abfrage verwenden, um die gewünschten Ergebnisse zu erhalten http://www.w3schools.com/sql/sql_join.asp – sanky

+0

Was ist die Beziehung zwischen den beiden Tabellen? –

Antwort

2

@sanky senden Sie einen guten Artikel über Joins und ist ein guter Anfang. @SujeetSinha bringt auch einen Hinweis darauf, wie Sie eine Tabelle mit der anderen verknüpfen.

Ich vermute, die Antwort ist, Sie wollen nur Datensätze zwischen den Tabellen, die übereinstimmen (INNER JOIN) und die Sie auf transactiondate von einer Tabelle auf die andere übereinstimmen möchten. In diesem Fall könnten Sie eine Abfrage wie folgt schreiben. Da beide Tabellen übereinstimmen müssen inner join Ihre where Anweisung für cloads würde auch Filter jpurch.

select 
    c.transactiondate 
    ,c.transactionamount 
    ,d.transactiondate 
    ,d.transactionamount 
from 
    cloads c 
    INNER JOIN jpurch d 
    ON c.transactiondate = d.transactiondate 
where 
    c.transactiondate between '2016-05-01' and '2016-06-06' 

Dank für das Mehr Infos scheint, dass wir als Gemeinschaft immer noch etwas Hilfe auf was warten Sie die Daten wie zu suchen, um zu besten Sie in Ihrer Abfrage zu führen. Wenn Sie 3-4 Reihen von jeder Ihrer Tabellen nehmen können, zeigen Sie uns die Anfangsdaten und ein Mock-up von, wie Sie wollen, dass es von diesen Reihen schaut, wir können Ihnen besser helfen.

Wenn keine Beziehung und in 1 Tabelle sind Sie wollen APPEND eine Tabelle an die andere? Wenn ja, verwenden Sie eine UNION or UNION ALL je nachdem, ob Sie alle Daten zurückgegeben oder nur DISTINCT Werte davon möchten. ALL bedeutet, geben Sie alles mit UNION allein heißt, Zeilen nicht wiederholen, die bereits in der Tabelle oben auf der Union-Anweisung sind.

select 
    c.transactiondate 
    ,c.transactionamount 
from 
    cloads c 
where 
    c.transactiondate between '2016-05-01' and '2016-06-06' 

UNION ALL 

select 
    d.transactiondate 
    ,d.transactionamount 
from 
    jpurch d 
where 
    d.transactiondate between '2016-05-01' and '2016-06-06' 
+0

Wie kann ich alle Daten für diese Datumsbereiche in eine Tabelle ziehen? Die Daten müssen nicht übereinstimmen. –

+0

Edward Vielleicht geben Sie uns einige Beispieldaten aus jeder Tabelle und wie Sie wollen, dass es aussieht? Willst du eine vollständige Kreuz verbinden Bedeutung für jedes Datum und Transaktion Betrag in 1 Tabelle haben Sie jede andere Transaktion Betrag und Datum Kombination aus der anderen Tabelle? 4 Reihen werden 16? Oder versuchen Sie nur, eine einzige Tabelle UNION aller Transaktionsdaten und Beträge zu machen? Sollten im letzteren Fall Daten und Beträge dupliziert werden oder nicht? – Matt

Verwandte Themen