Hello people,
as wrote in title I'm going crazy with a "complex" SQL select.
This is the seelct:
select T_ADDRESS, T_MCC,T_MNC,T_MSIN,T_IM_MNC, COUNT(*) FROM TABLETEST
WHERE T_MCC=123 AND (T_MNC=11 OR T_MNC=01)
GROUP BY T_ADDRESS,T_MCC,T_MNC,T_MSIN,T_IM_MNC HAVING count(*) > 5;
This select works fine, and the output is like:
T_ADDRESS T_MCC T_MNC T_MSIN T_IM_MNC
32011111111 123 11 1234567890 01 7
32711111111 123 11 1234567890 02 7
32911111111 123 11 1234567890 03 13
What I'm try to do now, is differentiate the HAVING count clause.
This mean I want "HAVING count(*) > X" based on T_IM_MNC table.
For example:
T_IM_MNC=01 => HAVING count() > 5
T_IM_MNC=02 => HAVING count() > 3
T_IM_MNC=03 => HAVING count(*) > 7
Is it possible in one query?
Could you please help me?
---------- Post updated at 04:54 AM ---------- Previous update was at 04:30 AM ----------
AHEM! After a cup of coffee I find myself the solution... It was so simple! That's why I'm going crazy!
select T_ADDRESS, T_MCC,T_MNC,T_MSIN,T_IM_MNC, COUNT(*)
FROM TABLETEST WHERE T_MCC=123 AND (T_MNC=11 OR T_MNC=01)
GROUP BY T_ADDRESS,T_MCC,T_MNC,T_MSIN,T_IM_MNC
HAVING (count(*) > 5 and T_IM_MNC=01) or count(*) > 5 and T_IM_MNC=02) );
Well, hope my post will help someone in the future!