Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/08/2015, 18:33
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: contar letras en especifico

si tus datos estan asi no ocupas la funcion que te pase con un case lo obtienes:

Ojo: la parte del case es con SQL SERVER
Código SQL:
Ver original
  1. CREATE TABLE #tblejemplo (cliente VARCHAR(50) NOT NULL,
  2. tipo_de_pago VARCHAR(10) NOT NULL,
  3. fec_pago DATE NOT NULL);
  4.  
  5. INSERT  INTO #tblejemplo VALUES ('8885','S','2015/01/01');
  6. INSERT  INTO #tblejemplo VALUES ('8885','S','2015/01/01');
  7. INSERT  INTO #tblejemplo VALUES ('8885','S','2015/01/01');
  8. INSERT  INTO #tblejemplo VALUES ('8885','S','2015/01/01');
  9.  
  10. INSERT  INTO #tblejemplo VALUES ('1111','S','2015/01/02');
  11. INSERT  INTO #tblejemplo VALUES ('1111','B','2015/01/02');
  12. INSERT  INTO #tblejemplo VALUES ('1111','B','2015/01/02');
  13.  
  14. SELECT * FROM(
  15. SELECT cliente,
  16.        group_concat(tipo_de_pago separator '-')AS 'pagos S',      
  17. FROM tblejemplo
  18. GROUP BY cliente) AS t1
  19. LEFT JOIN(
  20.  
  21. SELECT SUM(total) total, cliente,fec_pago FROM(
  22. SELECT CASE WHEN tipo_de_pago='S' THEN 1 ELSE 0 END AS total, cliente, tipo_de_pago,fec_pago FROM #tblejemplo) AS t1 GROUP BY cliente,fec_pago
  23.  
  24. ) AS t2 ON (t1.cliente=t2.cliente)

o la otra es que primero hagas esto:

Código MySQL:
Ver original
  1. select round(count(LENGTH(pagos S) - LENGTH(replace(pagos S, 'S', '')))/LENGTH('S'),0)as total, cliente from(
  2. select cliente,
  3.        group_concat(tipo_de_pago separator '-')as 'pagos S',      
  4. from tblejemplo
  5. group by cliente) as t1
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me