2016-08-26 2 views
-2

Customer_profile Tabelle TermineSQL wo Anweisung und passende

userid - initialDepositSuccessDate 
111111   2016-08-01 
222222   2016-08-15 

player_activity Tisch

userid -  Date  - Deposit 
111111   2016-08-01  $5.00 
111111   2016-08-02  $10.00 
111111   2016-08-03  $15.00 
222222   2016-08-05  $0.00 
222222   2016-08-08  $0.00 
222222   2016-08-15  $20.00 

meiner Anfrage

Select pa.userid, pa.deposit 
from player_activity pa 
INNER JOIN customer_profile cp 
    on cp.userid = pa.userid 
where pa.depositmade_amt <> 0 
    AND cp.amountGamingPlayerBalancecurrent > 0 
    AND cp.accountStatus = 'active' 
    AND pa.date = cp.initialDepositSuccessDate 

Idealerweise möchte ich meine Frage würde dieses Ergebnis zurück:

pa.userid pa.Deposit 
111111  $5.00 
222222  $20.00 

aber es gibt stattdessen dies:

pa.userid pa.Deposit 
111111  $5.00 
222222  $0.00 

Hilfe?

+4

verstehe ich Ihre Frage nicht vollständig zu konvertieren Konvertieren Funktion verwenden, um zu vergleichen, - Ihre Beispieldaten doesn Passen Sie Ihre Felder in Ihrer Abfrage nicht an. Mit diesem gesagt, scheint es, dass Ihre Abfrage Ihre erwarteten Ergebnisse zurückgibt: http://sqlfiddle.com/#!9/26e305/1 – sgeddes

+0

einige Änderungen vorgenommen. Hoffentlich macht es Ihnen mehr Sinn – eddd83

+0

Ihre Anfrage sollte Ihre gewünschte Ausgabe zurückgeben. Sie müssen entweder eine andere Abfrage verwenden oder unterschiedliche Inhalte in Ihren Tabellen haben. Vielleicht wiederholte Zeilen mit verschiedenen "accountStatus"? – Andrew

Antwort

0

Stellen Sie sicher, nur Datumsteil (keine Zeit)

Vielleicht können Sie auf dem Laufenden Typ

Convert(date, pa.date)=Convert(date, cp.initialDepositSuccessDate)