Tchello Postado Novembro 17, 2008 Denunciar Share Postado Novembro 17, 2008 Tenho uma tabela com os seguintes dados:IDContrato | IDOrdServ | DTExec | Status610250 | 0751 | 2008-11-01 | Fechado610251 | 0752 | 2008-11-01 | Fechado610252 | 0753 | 2008-11-01 | Fechado610253 | 0754 | 2008-11-01 | Aberto610254 | 0755 | 2008-11-01 | Aberto610255 | 0756 | 2008-11-01 | Cancelado610256 | 0757 | 2008-11-01 | Cancelado610257 | 0758 | 2008-11-01 | Cancelado610258 | 0759 | 2008-11-01 | Aberto610259 | 0760 | 2008-11-01 | Aberto610260 | 0751 | 2008-11-02 | Fechado610261 | 0752 | 2008-11-02 | Fechado610262 | 0753 | 2008-11-02 | Fechado610263 | 0754 | 2008-11-02 | Fechado610264 | 0755 | 2008-11-02 | Fechado610265 | 0756 | 2008-11-02 | Cancelado610266 | 0757 | 2008-11-02 | Cancelado610267 | 0758 | 2008-11-02 | Cancelado610268 | 0759 | 2008-11-02 | Aberto610269 | 0760 | 2008-11-02 | Abertopreciso printar na tela desta forma:Data | Fechados | Abertos | Cancelados | Total | % Fechados01/11/2008 | 3 | 4 | 3 | 10 | 30%02/11/2008 | 5 | 2 | 3 | 10 | 50%Ou seja preciso que faça o COUNT(por data, fechados, abertos e cancelados)...Porém não sei como fazer isso.Desde já agradeço a atenção... Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Novembro 17, 2008 Denunciar Share Postado Novembro 17, 2008 Tchello,faço desta forma no SQL Server, talvez você tenha que mudar algo aea parte da porcentagem não consegui fazer no sqltenho uma página parecida mas o cálculo faço no scriptse eu descobrir algo aqui eu posto aeselect DTExec as [Data], count( case Status when 'Fechado' then 1 else null end ) as [Fechados], count( case Status when 'Aberto' then 1 else null end ) as [Abertos], count( case Status when 'Cancelado' then 1 else null end ) as [Cancelados], count(IDContrato) as [Total] from tabela group by DTExec order by DTExec asc Link para o comentário Compartilhar em outros sites More sharing options...
0 Gigabyte Postado Novembro 17, 2008 Denunciar Share Postado Novembro 17, 2008 Tá aqui....SELECT "Data", SUM("Abertos") AS "Abertos", SUM("Fechados") AS "Fechados", SUM("Cancelados") AS "Cancelados", SUM("Total") AS "Total", ((SUM("Fechados")*100)/SUM("Total"))::numeric(5,2)||'%' AS "Percentual" FROM ( SELECT "DTExec" AS "Data", (CASE WHEN "Status" = 'Aberto' THEN 1 END ) AS "Abertos", (CASE WHEN "Status" = 'Fechado' THEN 1 END ) AS "Fechados", (CASE WHEN "Status" = 'Cancelado' THEN 1 END ) AS "Cancelados", 1 AS "Total" FROM teste.teste ) AS subQ GROUP BY "Data" Link para o comentário Compartilhar em outros sites More sharing options...
0 Tchello Postado Novembro 18, 2008 Autor Denunciar Share Postado Novembro 18, 2008 Tá aqui....SELECT "Data", SUM("Abertos") AS "Abertos", SUM("Fechados") AS "Fechados", SUM("Cancelados") AS "Cancelados", SUM("Total") AS "Total", ((SUM("Fechados")*100)/SUM("Total"))::numeric(5,2)||'%' AS "Percentual" FROM ( SELECT "DTExec" AS "Data", (CASE WHEN "Status" = 'Aberto' THEN 1 END ) AS "Abertos", (CASE WHEN "Status" = 'Fechado' THEN 1 END ) AS "Fechados", (CASE WHEN "Status" = 'Cancelado' THEN 1 END ) AS "Cancelados", 1 AS "Total" FROM teste.teste ) AS subQ GROUP BY "Data"Veleu Gigabyte,Era isso mesmo que eu precisava...Funcionou perfeitamente,Grande Abraço, Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tchello
Tenho uma tabela com os seguintes dados:
IDContrato | IDOrdServ | DTExec | Status
610250 | 0751 | 2008-11-01 | Fechado
610251 | 0752 | 2008-11-01 | Fechado
610252 | 0753 | 2008-11-01 | Fechado
610253 | 0754 | 2008-11-01 | Aberto
610254 | 0755 | 2008-11-01 | Aberto
610255 | 0756 | 2008-11-01 | Cancelado
610256 | 0757 | 2008-11-01 | Cancelado
610257 | 0758 | 2008-11-01 | Cancelado
610258 | 0759 | 2008-11-01 | Aberto
610259 | 0760 | 2008-11-01 | Aberto
610260 | 0751 | 2008-11-02 | Fechado
610261 | 0752 | 2008-11-02 | Fechado
610262 | 0753 | 2008-11-02 | Fechado
610263 | 0754 | 2008-11-02 | Fechado
610264 | 0755 | 2008-11-02 | Fechado
610265 | 0756 | 2008-11-02 | Cancelado
610266 | 0757 | 2008-11-02 | Cancelado
610267 | 0758 | 2008-11-02 | Cancelado
610268 | 0759 | 2008-11-02 | Aberto
610269 | 0760 | 2008-11-02 | Aberto
preciso printar na tela desta forma:
Data | Fechados | Abertos | Cancelados | Total | % Fechados
01/11/2008 | 3 | 4 | 3 | 10 | 30%
02/11/2008 | 5 | 2 | 3 | 10 | 50%
Ou seja preciso que faça o COUNT(por data, fechados, abertos e cancelados)...
Porém não sei como fazer isso.
Desde já agradeço a atenção...
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados