Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Combine two selects together
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9
Miscellaneous
Thread ID:
01112180
Message ID:
01112292
Views:
19
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.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform