Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Combine two selects together
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9
Divers
Thread ID:
01112180
Message ID:
01112292
Vues:
18
If I read both selects correctly they are same with oine difference, in second one you have additional filtering in WHERE clause. If this is it, you can try:
text TO lcSQLStr NOSHOW TEXTMERGE PRETEXT 7
	SELECT COUNT(Trans.cTrans_pk) as iAccounts_Count, ;
	       Trans_Employees_Queues.cCommission_Owner_UsGrLink_fk as cUsGrlink_pk, ;
               SUM(Trans.yCurrent_balance_amount) as yCurrent_Balance_Amount ;

               SUM(IIF((Trans_employees_queues.iTemporary_Assignment_Flag = 1 AND ;
                        Trans_employees_queues.tStart_Date <= <<m.lcDateTime>> ;
                        AND Trans_employees_queues.tExpire_Date >= <<m.lcDateTime>>), 1, 0) AS xxxxxx,;

	FROM TRANS INNER JOIN Trans_employees_queues ;
	ON Trans.cTrans_pk = Trans_employees_queues.cTrans_fk ;
	INNER JOIN Employee_queue_schedules ;
	ON Trans_employees_queues.cTrans_employees_queues_pk = ;
	Employee_queue_schedules.cTrans_employees_queues_fk ;
	WHERE <<m.lcFilter>> ;
	GROUP BY 2
ENDTEXT
>Hi everybody,
>
>Bellow are two selects:
>
>text TO lcSQLStr NOSHOW TEXTMERGE PRETEXT 7
>	SELECT COUNT(Trans.cTrans_pk) as iAccounts_Count, ;
>	   Trans_Employees_Queues.cCommission_Owner_UsGrLink_fk as cUsGrlink_pk, ;
>		SUM(Trans.yCurrent_balance_amount) as yCurrent_Balance_Amount ;
>	FROM TRANS INNER JOIN Trans_employees_queues ;
>	ON Trans.cTrans_pk = Trans_employees_queues.cTrans_fk ;
>	INNER JOIN Employee_queue_schedules ;
>	ON Trans_employees_queues.cTrans_employees_queues_pk = ;
>	Employee_queue_schedules.cTrans_employees_queues_fk ;
>	WHERE <<m.lcFilter>> ;
>	GROUP BY 2
>ENDTEXT
>
>text TO lcSQLStrTemp NOSHOW TEXTMERGE PRETEXT 7
>	SELECT COUNT(Trans.cTrans_pk) as iAccount_Count, ;
>	 Trans_Employees_Queues.cUsgrlink_fk as cUsGrlink_pk, ;
>		SUM(Trans.yCurrent_balance_amount) as yCurrent_Balance_Amount ;
>	FROM TRANS INNER JOIN Trans_employees_queues ;
>	ON Trans.cTrans_pk = Trans_employees_queues.cTrans_fk ;
>	INNER JOIN Employee_queue_schedules ;
>	ON Trans_employees_queues.cTrans_employees_queues_pk = ;
>	Employee_queue_schedules.cTrans_employees_queues_fk ;
>	WHERE <<m.lcFilter>> AND ;
>	(Trans_employees_queues.iTemporary_Assignment_Flag = 1 AND ;
>   	 Trans_employees_queues.tStart_Date <= <<m.lcDateTime>> ;
>	 AND Trans_employees_queues.tExpire_Date >= <<m.lcDateTime>>)
>	 group by 2
>ENDTEXT
>
>I'd like to combine them into one. In other words, if, for some reason, account has cCommission_Owner_UsGrLink_fk and also has cUsGrLink_fk filled it, I'd like to count it only once.
>
>
>I'm not sure how to write this as one select. Thanks in advance for your suggestions.
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform