the problem with writing SQLS and not keeping to some nice coding standard pattern of indentation, or using a query gen tool, is they become very hard to read

try this:
Code:
SELECT 
  COUNT(*) 
FROM 
  COGNOS_PRODUCT_AGG cpa
  INNER JOIN 
  COGNOS_WIS_PRODUCT_TYPE cwpt
  ON 
    cwpt.PRODUCT_TYPE_ID = cpa.PRODUCT_TYPE_ID AND 
    cwpt.MEDIUM_KEY_ID   = cpa.MEDIUM_KEY_ID AND
    cwpt.WIS_PRODUCT_TYPE_ID = 9
    
  INNER JOIN 
  COGNOS_JRNL_TRANSACTION_AGG cjta 
  ON 
    cjta.PRODUCT_ID = cpa.PRODUCT_ID 
    
  INNER JOIN 
  DW_SALES_MODEL_SYN dsms 
  ON 
    dsms.SALES_MODEL_ID = cjta.SALES_MODEL_ID AND
    dsms.SALES_MODEL_GROUP_DESC = 'Subscription'
     
  INNER JOIN 
  COGNOS_JRNL_CUST_CONTRACT_AGG cjcca
  ON --this ON clause was moved from the end of the SQL to here
    cjcca.CUSTOMER_CONTRACT_ID = cjta.CUSTOMER_CONTRACT_ID AND
    cjcca.PROFILE_YEAR = '2007'

   
  INNER JOIN 
  DW_CONTRACT_SYN dcs 
  ON 
    dcs.CONTRACT_ID = cjcca.CONTRACT_ID AND
    dcs.CONTRACT_NAME = 'Enhanced Access License'
     
  INNER JOIN 
  DW_SALES_REP_SYN dsrs 
  ON 
    dsrs.SALES_REP_ID_TYPE1 = cjcca.SALES_REP_ID AND
    dsrs.SALES_REP_NAME = 'Dennis St. Rose'
IMHO, this is much neater and cleaner. I've moved an ON clause I felt was in the wrong place, and I've moved the constant expressions (why do you use IN for just a single value?) to the join clauses; doing so helps with outer joins more than inner joins.. It has the same effect as the where clause

I also removed all the aliases of your tables, because you'd only (mostly) alised them to the same name as the table (pointless) and I removed the repeated refrences to the owner (cognos) though if youre running this sql from another owner, they will need to go back. Dont use " " if you can help it; it adds clutter

Another thing to consider; you seem to join in several tables purely so you can use the descriptive labels as a where restrictor.. Given that descriptive references can change, you should consider using the index fields for these entries instead.. it also obviates the need for joining in extra tables (unless, of course, these descriptive names are groups, there are many rows all having contract name "Enhanced Access Licence" and different IDs..