Frage : Updatetabelle basxed auf Resultaten der Frage

Experten, habe ich die folgenden Temptabelle @tmpContacts:

ContactID   ClientID   NumContactsNeeded   NumContactsMade   TimePeriod
-------------   ----------  ---------------------------   ------------------------   --------------
1 3 2 UNGÜLTIGES Day
2 4 1 UNGÜLTIGES Week
3 5 1 UNGÜLTIGES Month

I morgens versuchend, das NumContactsMade Feld using die folgende Frage zu aktualisieren:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
UPDATE @tmpContacts
NumContactsMade = b.Contacts VON EINSTELLEN
	(
		ClientID, SUMME (Kontakte) VORWÄHLEN ALS Kontakte 
		VON 
			(
				AUSERWÄHLTES ClientID, GELTEN (Client_Contact_Tbl.ClientID) ALS Kontakte
				VON Client_Contact_Tbl
				GRUPPE DURCH ClientID, Contact_Status, ContactDate
				Contact_Status ZU HABEN IST NICHT UNGÜLTIGES UND ContactDate >= „6/20/2010“
			) a
		GRUPPE DURCH a.ClientID
	) b, @tmpContacts


Which gibt mir die folgenden Resultate:

ContactID   ClientID   NumContactsNeeded   NumContactsMade   TimePeriod
-------------   ----------  ---------------------------   ------------------------   --------------
1 3 2 1 Day
2 4 1 1 Week
3 5 1 1 Month

However, die Resultate sollte sein:

ContactID   ClientID   NumContactsNeeded   NumContactsMade   TimePeriod
-------------   ----------  ---------------------------   ------------------------   --------------
1 3 2 1 Day
2 4 1 2 Week
3 5 1 UNGÜLTIGES Month

Since die Resultate der Vorfrage sind:

ClientID   Contacts
----------   -----------
3 1
4 2
13 1

What sind ich falsch tuend?

Antwort : Updatetabelle basxed auf Resultaten der Frage

Update tempAlias
NumContactsMade=Contacts einstellen
von
(
            AUSERWÄHLTES ClientID, SUMME (Kontakte) ALS Kontakte
            VON
                  (
                        AUSERWÄHLTES ClientID, GELTEN (Client_Contact_Tbl.ClientID) ALS Kontakte
                        VON Client_Contact_Tbl
                        GRUPPE DURCH ClientID, Contact_Status, ContactDate
                        Contact_Status ZU HABEN IST NICHT UNGÜLTIGES UND ContactDate >= „6/20/2010“
                  ) a
            GRUPPE DURCH a.ClientID
) derivedTable
@tempContacts tempAlias auf derivedTable.ClientId=tempAlias.ClientId verbinden

Syntaktisch sollte das korrekt sein (obgleich zugegebenermaßen ich denke, dass es bis gesäubert werden könnte beseitigt die abgeleitete Tabelle).  Logisch wundere ich, wenn Ihr Subquery auf contactid eher als Klientenidentifikation gruppiert, aber ich annehme h, wenn Kontakt und Klient 1:1 sind, das er nicht ausmacht.
Weitere Lösungen  
 
programming4us programming4us