Wie kann ich eine Gruppe machen?

Ich kann viele Anfragen an ein Haus stellen, aber nur eine Anfrage kann akzeptiert werden. Wenn die Anfrage angenommen wird, wird die Anfrage in meiner San_Negocio Tabelle gespeichert. In meinem Tisch San_Proposta, ich erstelle die Anfrage.

Ich möchte eine Abfrage, die alle data in san_proposta, dass Status gleich 1 ist, und alle data in san_proposta, dass alle Status gleich 2 ist aber in san_negocio, hat die ValidaVenda anders als ValidaCaptacao

San_Proposta

Proposta_Id Imovel_Id DataHora Status 1 2001 2012-03-07 00:00:00 1 2 2001 2012-03-07 00:00:01 1 3 2001 2012-03-07 14:00:00 2 4 2001 2012-03-07 15:00:00 1 5 2002 2012-03-07 00:00:00 1 6 2002 2012-03-07 00:00:02 1 

San_Negocio

 Negocio_Id Imovel_Id Proposta_Id ValidaVenda ValidaCaptacao 1 2001 3 0 1 

Was ich möchte

 Imovel_Id Number Of Propost With status 1 2001 3 2002 2 

Ich versuche diese Abfrage, aber das Problem ist die Rückkehr. Das Imovel_Id wird wegen meiner DataHora wiederholt, die sich in jedem Request (Proposta_Id) unterscheiden.

 SELECT p.Proposta_Id FROM San_Proposta p WHERE p.StatusProposta_Id = 1 UNION SELECT p.Proposta_Id FROM San_Proposta p LEFT JOIN San_Negocio ON San_Negocio.Proposta_Id = p.Proposta_Id WHERE p.StatusProposta_Id = 2 AND San_Negocio.ValidaCaptacao <> San_Negocio.ValidaVenda 

Ich habe das nicht getestet, aber es wird so aussehen:

 select Imovel_Id, count(*) as "Number Of Propost With status 1" FROM San_Proposta WHERE Imovel_Id=2001 and Status=1 GROUPBY Imovel_Id 

Für das Update:

 select Imovel_Id, count(*) as "Number Of Propost With status 1" FROM San_Proposta p LEFT OUTER JOIN San_Negocio n ON p.Imovel_Id=n.Imovel_Id WHERE p.Status=1 GROUPBY Imovel_Id 

Sie können dann fortfahren, alle anderen Spalten in Ihrer where-Klausel zu bewerten, indem Sie Folgendes aktualisieren:

WO p.Status = 1 und p.StatusProposta_Id = 2

Die Syntax für die linke äußere Verknüpfung könnte für sqlserver unterschiedlich sein

 SELECT sn.Imovel_Id,COUNT(sn.Proposta_Id) as Count_Proposta_status FROM San_Proposta sp,San_Negocio sn WHERE sp.Imovel_Id = sn.Imovel_Id AND sp.Imovel_Id=2001 AND sp.Status = 1 AND sn.Proposta_Id is NOT NULL GROUP BY sn.Imovel_Id;