Vraag : Basis math in de opgeslagen procedure van lidstaten SQL over drie lijsten

Ik probeer om wat zeer basismath in lidstaten SQL te doen door één opgeslagen procedure te gebruiken om de waarde van een kolom in Table_A, dan waterscheiding de SOM van Table_A door het totaal van de paginamening van Table_B OP TE TELLEN - en WERK de waarde in Table_C.

Basically ik bij probeer om eCPC voor een lood uit te werken die plaats op een basis produceren van de paginamening (zo telkens als een gebruiker een profiel bezoekt wordt eCPC bijgewerkt tegen de SOM geproduceerde lood).

val = gemeenschappelijk punt over alle het drie tables

So stap 1 is: SOM
SELECT (lead_value) als lead_sum VAN Table_A WAAR camp_id='val'< br/>
Step 2:
SELECT page_views VAN Table_B WAAR camp_id='val'< br/>
Step 3:
new_eCPC = lead_sum/page_views

Step 4:
UPDATE Table_C PLAATSEN lead_eCPC='new_eCPC WAAR camp_id='val'< br/>
Now ik dit in ASPIS kan easilly doen, maar moet is ik een SQL manuscript drie keer om te doen uitvoeren dit - die ik geloof terribily inefficiënt aangezien ik het willen gebeuren telkens als een profiel viewed.

Can is iemand gelieve wij schrijft een opgeslagen procedure voor dit zodat te helpen ik slechts moet het op elke profielmening eens uitvoeren? dank

Many!

C

Antwoord : Basis math in de opgeslagen procedure van lidstaten SQL over drie lijsten

Goed kan ik niet zien wat datatypes uw gebieden hebben, maar zou moeten zijn iets als het volgende.

U kunt het als dit uitvoeren: EXEC UpdateECPC „campid“
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
CRE�ëR PROCEDURE varchar UpdateECPC @camp_id (20)
ZOALS
BEGIN
	PLAATS NOCOUNT
	VERKLAAR @lead_sum int.
	VERKLAAR @page_views int.
	PLAATS @lead_sum = (UITGEZOCHTE SOM (lead_value) VAN Table_A WAAR camp_id = @camp_id)
	PLAATS @page_views = (SELECTEER page_views UIT Table_B WAAR camp_id = @camp_id)
	WERK GEPLAATSTE Table_C bij lead_eCPC = @lead_sum/@page_views WAAR camp_id = @camp_id
	VEROORZAAK NOCOUNT
EIND
Andere oplossingen  
 
programming4us programming4us