select distinct PartnerId from Master_Shares
Diese Query wird Ihnen alle verschiedenen PartnerId in der Tabelle Master_Shares zur Verfügung stellen. Jetzt
,
select * from Master_Shares
where (PartnerId = (select distinct PartnerId from Master_Shares))
in Where-Klausel Sie verwendet haben '=' Operator, der nur einen Wert von Ihrer inneren Abfrage erwarten wird. Ihre Abfrage funktioniert nur in dem Fall, in dem nur eine eindeutige Partner-ID in Ihrer Tabelle vorhanden ist, aber in dem Fall, in dem Sie mehrere unterschiedliche Partner-IDs haben, schlägt sie fehl.
Lösung: -
You can use In clause
select * from Master_Shares
where PartnerId in (select distinct PartnerId from Master_Shares)
Aber in Ihrem Fall
select * from Master_Shares
auch denselben Datensatz geben, wie IN-Abfrage. Also verstehe ich nicht, warum Sie das auf diese Weise an erster Stelle machen wollen?
Was soll diese Abfrage tun? Es filtert einfach die Zeilen, richtig? Zu denen, die PartnerId gesetzt haben? Warum werden Sie nicht einfach die WHERE-Klausel verwenden, um sie herauszufiltern (wie WHERE PartnerId ist nicht null)? –