@gopiven this seems to be use case for a single query rather than three. If you are on Splunk 6.6 or higher you can use Trellis layout to split viz and show Total Successful And Failed logins. If you are on prior version, you can use Post-Processing to split the results to three different Single Value viz. You can try the single SPL on the following lines (untested of-course)
index=main1 SOURCETYPE=base1 "TEXT MATCHING FOR SUCCESSFUL LOGIN" OR "TEXT MATCHING FOR FAILURE LOGIN"
OR (index=main2 SOURCETYPE=base2 "TEXT MATCHING FOR SUCCESSFUL LOGIN" OR "TEXT MATCHING FOR FAILURE LOGIN")
OR (index=main3 SOURCETYPE=base3 "TEXT MATCHING FOR SUCCESSFUL LOGIN" OR "TEXT MATCHING FOR FAILURE LOGIN")
| eval type=case((index=="main1" AND sourcetype=="base1" AND searchmatch("TEXT MATCHING FOR SUCCESSFUL LOGIN")) OR
(index=="main2" AND sourcetype=="base2" AND searchmatch("TEXT MATCHING FOR SUCCESSFUL LOGIN")) OR
(index=="main3" AND sourcetype=="base3" AND searchmatch("TEXT MATCHING FOR SUCCESSFUL LOGIN")), "Successful",
(index=="main1" AND sourcetype=="base1" AND searchmatch("TEXT MATCHING FOR FAILURE LOGIN")) OR
(index=="main2" AND sourcetype=="base2" AND searchmatch("TEXT MATCHING FOR FAILURE LOGIN")) OR
(index=="main3" AND sourcetype=="base3" AND searchmatch("TEXT MATCHING FOR FAILURE LOGIN")), "Failure",)
| timechart span=1h count as TOTAL_COUNT count(eval(type=="Successful") as "SUCCESSFUL" count(eval(type=="Failure") as "FAILURE" by type
Following is a run anywhere example based on Splunk's _internal index where I have manipulated INFO and ERROR events as Success and Failed scenarios similar to your use case:
index=_internal sourcetype=splunkd ("INFO" OR "ERROR")
| eval type=case(searchmatch("INFO"),"Success",
searchmatch("ERROR"),"Failure")
| timechart count as Total count(eval(type=="Success")) as "Success" count(eval(type=="Failure")) as "Failure"
... View more