KUROL3 3 Denunciar post Postado Outubro 29, 2010 Olá estou com uma dúvida que..... quando vi achei que era facil, mas quando fui fazer deu um nó.. mas nó cego srsrsr... vou dar um exemplo... estou criando um sisteminha para gerenciar cobrança de domínio. Bom quando vence dois domínios juntos ou no período de 30 dias eu agrupo pleo cliente até ai beleza.... Quando eu gero o boleto para esses dois domínios, "um único boleto para 2 domínios", na tabela de boleto eu gravo "id_dominios_renovacao = '125,128'" os dois id dois domínios a serem renovados. até ai maravilha rodando perfeito... Agora hj por conhecidência havia um boleto nessa situação e o cliente pediu para registrar mais 2, quando eu cliquei para ver os domínios apareceu a opção de gerar os boletos novamente para os 4 domínios. eu precisaria agrupar pelo "id_dominios_renovacao" os ids na clientes_dominios: tipo tabela clientes_dominios (suponhamos que todos 2 vence esse mes eu ja gerei o boleto e o restante o cliente pediu depois de gerar o boleto id dominio 10 dominio1 11 dominio2 12 dominio4 13 dominio5 14 dominio6 13 dominio7 tabela de boleto id id_dominios_renovacao 220 - '10,11' o group by teria que ficar o id 10,11 em uma mesma coluna tabela de dominios CREATE TABLE `clientes_dominios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_cliente` int(11) NOT NULL, `id_usuario` int(11) NOT NULL, `dominio` varchar(50) COLLATE latin1_general_ci NOT NULL, `flag_propriedades` smallint(1) NOT NULL COMMENT '0 - não cobrar não é kurole - 1 é kurole tem que cobrar', `data_expiracao` date NOT NULL, `data_criacao` date NOT NULL, `data` datetime NOT NULL, `flag_excluido` smallint(1) NOT NULL, `ip` varchar(16) COLLATE latin1_general_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `dominio` (`dominio`), KEY `id_cliente` (`id_cliente`), KEY `id_usuario` (`id_usuario`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=266 ; aguardo marco Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Outubro 29, 2010 mostre seu sql Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 30, 2010 O que não esta dando certo está assim.... SELECT CD.id, CD.data_expiracao, CD.id_cliente, date_format(CD.data_expiracao, '%d/%m/%Y') as data_expiracao_OK, date_format(CD.data_criacao, '%d/%m/%Y') as data_criacao_OK, COUNT(CD.dominio) as qtd_dominio, GROUP_CONCAT(CD.id) as id_dominios, clientes.nome_razao, clientes.telefone, clientes.id_categoria, clientes.id_cedente, clientes.flag_taxa_boleto, boleto_gerado.id as existe_boleto, date_format(boleto_gerado.vencimento_data, '%d/%m/%Y') as vencimento_data_OK FROM clientes_dominios CD INNER JOIN clientes ON clientes.id = CD.id_cliente LEFT JOIN boleto_gerado ON CD.id IN (boleto_gerado.id_dominio_renovacao) /*AND boleto_gerado.pago != 'sim' nao é necessario essa informaçao pq na baixa atualiza data de expiraçao */ WHERE CD.flag_propriedades = 1 AND CD.data_expiracao <= DATE_ADD(now(), interval 1 month) AND CD.data_expiracao <> '0000-00-00' AND CD.flag_excluido != 1 GROUP BY CD.id_cliente ORDER BY CD.data_expiracao ASC Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 30, 2010 Tente : SELECT CD.id, CD.data_expiracao, CD.id_cliente, date_format(CD.data_expiracao, '%d/%m/%Y') as data_expiracao_OK, date_format(CD.data_criacao, '%d/%m/%Y') as data_criacao_OK, GROUP_CONCAT(CD.id) as id_dominios, clientes.nome_razao, clientes.telefone, clientes.id_categoria, clientes.id_cedente, clientes.flag_taxa_boleto, boleto_gerado.id as existe_boleto, date_format(boleto_gerado.vencimento_data, '%d/%m/%Y') as vencimento_data_OK, COUNT(CD.dominio) as qtd_dominio FROM clientes_dominios CD INNER JOIN clientes ON clientes.id = CD.id_cliente LEFT JOIN boleto_gerado ON CD.id IN (boleto_gerado.id_dominio_renovacao) /*AND boleto_gerado.pago != 'sim' nao é necessario essa informaçao pq na baixa atualiza data de expiraçao */ WHERE CD.flag_propriedades = 1 AND CD.data_expiracao <= DATE_ADD(now(), interval 1 month) AND CD.data_expiracao <> '0000-00-00' AND CD.flag_excluido != 1 GROUP BY CD.id, CD.data_expiracao, CD.id_cliente, date_format(CD.data_expiracao, '%d/%m/%Y'), date_format(CD.data_criacao, '%d/%m/%Y'), GROUP_CONCAT(CD.id), clientes.nome_razao, clientes.telefone, clientes.id_categoria, clientes.id_cedente, clientes.flag_taxa_boleto, boleto_gerado.id, date_format(boleto_gerado.vencimento_data, '%d/%m/%Y') ORDER BY CD.data_expiracao ASC Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Novembro 2, 2010 Deu esse erro: #1111 - Invalid use of group function Tirei a group_concat do group by ai não funcionow.. se não tiver idéia eu dou uns print da tela... marco heheheheh consegui...... assim... vou postar aqui tenho ctz.. que vai ajudar alguem tb.. srrsrs alterei essa linha no left join LEFT JOIN boleto_gerado ON CD.id IN (boleto_gerado.id_dominio_renovacao) Por LEFT JOIN boleto_gerado ON FIND_IN_SET(CD.id, boleto_gerado.id_dominio_renovacao) /*aqui ele encontra os ids que estao no mesmo campo tipo 102,135,132*/ depois so agrupei em baixo ficou perfeito... SELECT CD.id, CD.data_expiracao, CD.id_cliente, date_format(CD.data_expiracao, '%d/%m/%Y') as data_expiracao_OK, date_format(CD.data_criacao, '%d/%m/%Y') as data_criacao_OK, COUNT(CD.dominio) as qtd_dominio, GROUP_CONCAT(CD.id) as id_dominios, clientes.nome_razao, clientes.telefone, clientes.id_categoria, clientes.id_cedente, clientes.flag_taxa_boleto, boleto_gerado.id as existe_boleto, date_format(boleto_gerado.vencimento_data, '%d/%m/%Y') as vencimento_data_OK FROM clientes_dominios CD INNER JOIN clientes ON clientes.id = CD.id_cliente LEFT JOIN boleto_gerado ON FIND_IN_SET(CD.id, boleto_gerado.id_dominio_renovacao) /*AND boleto_gerado.pago != 'sim' nao é necessario essa informaçao pq na baixa atualiza data de expiraçao */ WHERE CD.flag_propriedades = 1 AND CD.data_expiracao <= DATE_ADD(now(), interval 1 month) AND CD.data_expiracao <> '0000-00-00' AND CD.flag_excluido != 1 GROUP BY CD.id_cliente, boleto_gerado.id_dominio_renovacao ORDER BY CD.data_expiracao ASC abraço.. kurole Compartilhar este post Link para o post Compartilhar em outros sites