Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''join''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Olá! Estou trabalhando com SQL Server. Preciso unir duas tabelas com base na coluna “Ctrl”. A primeira tabela, “Cad_Clients”, contém informações de clientes, enquanto a segunda, “Cad_Colors”, possui a descrição das informações. A condição para uni-las é que o valor de “Ctrl” seja o mesmo em ambas as tabelas. No entanto, a distribuição precisa ser exata, ou seja, não podem ocorrer duplicatas. Imagine que eu crie um laço ‘for’ na tabela ´Cad_Colors´. Em cada iteração, adiciono um registro da tabela à ‘Cad_Clients’, desde que o valor ‘Ctrl’ corresponda. Após, excluo esse registro de ´Cad_Colors´. Se a tabela em loop ficar vazia ou o laço chegar ao fim, significa que distribuí o máximo possível dos registros. É apenas isso, mas não quero usar um laço no banco; estou confiante de que, discutindo aqui, podemos obter um resultado muito mais conciso. Representação visual do problema Cad_Clients | idPerson | Person | Ctrl | |----------|----------|-------| | 1 | John | 100 | | 2 | Sarah | 101 | | 3 | Michael | 102 | | 4 | Emily | 103 | | 5 | William | 104 | | 6 | Olivia | 105 | | 7 | James | 100 | | 8 | Emma | 101 | | 9 | Benjamin | 102 | | 10 | Sophia | 103 | | 11 | Samuel | 104 | | 12 | Ava | 105 | | 13 | Joseph | 100 | Cad_Colors | Ctrl | Color | idColor | |------|----------|---------| | 100 | Red | 1 | | 104 | Blue | 2 | | 105 | Green | 3 | | 103 | Yellow | 4 | | 104 | Purple | 5 | | 105 | Red | 6 | União das duas tabelas: | idPerson | Person | Ctrl | Color | |----------|---------|------|--------| | 1 | John | 100 | Red | | 4 | Emily | 103 | Yellow | | 5 | William | 104 | Blue | | 6 | Olivia | 105 | Green | | 11 | Samuel | 104 | Purple | | 12 | Ava | 105 | Red | Algumas tentativas frustradas: INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, (SELECT TOP 1 cco.idColor FROM Cad_Colors cco WHERE cco.Ctrl = ccl.Ctrl AND cco.idColor NOT IN(SELECT idColor FROM @Tmp)) FROM Cad_Clients ccl INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, cco.idColor, cco.Color FROM Cad_Clients ccl JOIN (SELECT TOP 1 cco.* FROM Cad_Colors cco WHERE cco.idColor NOT IN(SELECT idColor FROM @Tmp)) cco ON cco.Ctrl = ccl.Ctrl INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, cco.idColor, cco.Color FROM Cad_Clients ccl JOIN Cad_Colors cco ON cco.Ctrl = ccl.Ctrl WHERE NOT EXISTS (SELECT 1 FROM @Tmp WHERE Ctrl = cco.Ctrl) MERGE INTO Cad_Clients AS target USING Cad_Colors AS source ON target.Ctrl = source.Ctrl WHEN MATCHED THEN UPDATE SET target.idPerson = target.idPerson OUTPUT inserted.idPerson, inserted.Person, inserted.Ctrl, inserted.idColor, inserted.Color INTO @tmp; Ajuda para criar os cenários: CREATE TABLE Cad_Clients( [idPerson] [int] IDENTITY(1,1) NOT NULL, [Person] [varchar](60) NULL, [Ctrl] [int] NULL ); CREATE TABLE Cad_Colors( [Ctrl] [int] NULL, [Color] [varchar](60) NULL, [idColor] [int] IDENTITY(1,1) NOT NULL ); INSERT INTO Cad_Clients (Person, Ctrl) VALUES ('John',100), ('Sarah',101), ('Michael',102), ('Emily',103), ('William',104), ('Olivia',105), ('James',100), ('Emma',101), ('Benjamin',102), ('Sophia',103), ('Samuel',104), ('Ava',105), ('Joseph',100); INSERT INTO Cad_Colors (Ctrl, Color) VALUES (100, 'Red'), (104, 'Blue'), (105, 'Green'), (103, 'Yellow'), (104, 'Purple'), (105, 'Red'); DECLARE @Tmp TABLE( idPerson INT, Person VARCHAR(60), Ctrl INT, idColor INT /*Color VARCHAR(60)*/ );
  2. Tenho um sistema onde são cadastrados médicos e plantões, para mostrar ao cliente todos os plantões preciso fazer um join na tabela de médicos. Porém, o join está retornando com erro: todos os dados dos médicos vem certo, porém os do plantão vem um mesmo valor em todas as linhas. Acredito que seja um erro de join, pois com 2 selects os valores retornados ficam normais. Alguém pode me ajudar? (está em anexo o print de como está retornando os valores) Código: SELECT * FROM TB_PLANTOES join TB_MEDICOS on PLANT_MED_CODIGO = PLANT_CODIGO order by field(PLANT_DIA,'Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado');
  3. Boa noite pessoal, se alguém puder ajudar nessa tarefa, eu ficarei agradecido. Tenho duas tabelas(tri1 e data_hora) : tabela tri1: id_data | data | status | evento 1 | 2020-01-01 | 0 | 2 | 2020-01-02 | 0 | 3 | 2020-01-03 | 0 | E assim por diante até chegar no final do trimestre. tabela data_hora que irá guardar todos os agendamentos de cada dia: id | id_data | nome 1 | 1 | Fulano 2 | 1 | Ciclano 3 | 3 | Ciclano Então a minha dúvida é a seguinte, na tabela acima(data_hora) temos 2 agendamentos na mesma data, ou seja, ID 1, e pegar essa quantidade(2) no ID 1 e colocar na tabela tri1 com um campo quantidade(2) cujo ID seja 1 e assim por diante. Pois esses dois campos id_data são o mesmo. Se caso não expliquei legal, posso tentar melhorar. Desde já agradeço.
  4. Olá! Estou precisado de ajuda pois estou tentando gerar um relatório de entrega de 'pedidos', mas minha tabela 'pedidos' traz apenas o 'id' dos clientes. Ainda mais minha tabela de 'representantes' só traz o 'id' da tabela 'users' meu cód está assim... SELECT p.ped_data_entrega AS 'ENTREGA', p.id AS 'PEDIDO', p.clientes_id AS 'CLIENTES', p.representantes_id AS 'REPRESENTANTE' FROM imovpedidos_nina.pedidos AS p INNER JOIN imovpedidos_nina.clientes AS c ON ( p.clientes_id = c.id ) WHERE p.status = '4' minha tabela representante: CREATE TABLE `representantes` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `users_id` int(10) unsigned NOT NULL, `rep_endereco` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, `rep_telefone` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `rep_latitude` double(18,15) DEFAULT NULL, `rep_longitude` double(18,15) DEFAULT NULL, PRIMARY KEY (`id`), KEY `representantes_users_id_foreign` (`users_id`) ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci minha tabela de usuarios: CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `permissoes_usuarios_id` int(10) unsigned NOT NULL, `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `usuario` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(256) COLLATE utf8_unicode_ci NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1, `remember_token` text COLLATE utf8_unicode_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`), KEY `users_permissoes_usuarios_id_foreign` (`permissoes_usuarios_id`) ) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci _______________ Obrigado des-de já.
  5. Quais diferenças nesses dois códigos, pois o resultado ao final é o mesmo: Então quais são as diferenças, nos comandos utilizados? SELECT orders.* FROM orders JOIN accounts ON orders.account_id = accounts.id; para: SELECT orders.* FROM orders, accounts WHERE orders.account_id = accounts.id;
  6. Pessoal estou tentando fazer uma consulta ao BD da seguinte forma: select sol.*, pes.nome as solicitante, ifnull(secOrigem.sigla,'Solicitante') as secretariaorigem, ifnull(secDestino.sigla,'SIC Central') as secretariadestino, mov.idsecretariadestino, mov.datarecebimento, mov.idmovimentacao, c.*, DATEDIFF(sol.dataprevisaoresposta, NOW()) as prazorestante, tip.nome as tiposolicitacao from lda_solicitacao sol join lda_tiposolicitacao tip on tip.idtiposolicitacao = sol.idtiposolicitacao join lda_solicitante pes on pes.idsolicitante = sol.idsolicitante left join lda_movimentacao mov on mov.idmovimentacao = (select max(m.idmovimentacao) from lda_movimentacao m where m.idsolicitacao = sol.idsolicitacao) left join sis_secretaria secOrigem on secOrigem.idsecretaria = mov.idsecretariaorigem left join sis_secretaria secDestino on secDestino.idsecretaria = mov.idsecretariadestino join lda_configuracao c where 1=1 ORDER BY sol.idsolicitacao DESC Até consigo, mas o meu retorno no Workbench é duplicado (2 linhas iguais surgem consecutivamente). Alguém pode me ajudar!? Obrigado.
  7. Boa noite pessoal. Estou dando os primeiros passos em programação e precisando transformar um grupo de controles em planilhas para um bd acessado via interface web (php) na empresa de um amigo. É um sistema para controlar locações de equipamentos. Os equipamentos são locados por vários meses e todo mês tem que gerar um relatório conforme anexo. Cada cliente loca vários equipamentos. Seriam três tabelas relacionadas aqui, a de clientes, a de aluguel e a de equipamentos. Relaciono o id das três para listar apenas os registros coincidentes. Quando fecha o mês a consulta deve gerar um relatório que diga, para cada cliente com locações em aberto naquele mês, quais equipamentos estavam locados; quais estavam locados desde o dia 1, ou se iniciou depois. Se continuou locado até o último dia do mês corrente, ou encerrou antes do final do mês, contar quantos dias ficou locado naquele mês. Multiplicar a quantidade de dias pelo valor da diária, que vem da planilha de equipamentos, e gerar o valor de locação do item. Depois gerar o total de cada cliente e o total de faturamento do mês. Os campos envolvido são: clientes.cliente_id, clientes.nome; equipamentos.equipamentos_id, equipamentos.nome, equipamentos.diaria; aluguel.aluguel_id, aluguel.fk_cli_id, aluguel.fk_eqp_id, aluguel.dataInicio, aluguel.diaria. Se precisar de outra tabela, fiquem livres para sugerir. Esse projeto tem sido uma fonte de exercícios de aprendizado e estou fazendo 0800. Agradeço toda ajuda que puderem me dar. Inclusive, se alguém tiver um sistema em php/mysql para locações pronto e quiser compartilhar eu ficaria muito feliz em estudá-lo.
  8. Boa noite pessoal, tudo bem? É o seguinte, estou iniciando na área de SQL (inclusive já peço desculpas pelos possíveis erros) e trabalho montando relatórios para um sistema via SQL. Estou montando um relatório que envolve algumas tabelas e preciso somar o valor de uma coluna, ocorre que quando uso a função SUM no select com as junções das tabelas ele não me retorna a soma dos valores, se somo sem as junções das tabelas ele me retorna perfeitamente, segue abaixo o script: Script que trás a soma corretamente: SELECT SUM(VALOR) FROM sophia.MOVFIN WHERE VENDA = '14617' AND PARCELA = '2' Resultado --------------------------------------- 329.0000 (1 linha(s) afetadas) Script onde a soma não funciona corretamente: SELECT DISTINCT T.CODIGO As CODTURMA, F.NOME As NOME, F.CPF As CPF, T.NOME As TURMA, S.DESCRICAO As SEGMENTO, F.CODEXT As RA, F.OBSERVACOES As OBSERVAÇÃO, case M.STATUS WHEN 0 then 'Ativa' WHEN 1 then 'Trancada' WHEN 2 then 'Cancelada' WHEN 3 then 'Transferida' WHEN 4 then 'Evadida' WHEN 5 then 'Concluída' end as STATUS, TAB.DESCRICAO1 As INDICADOPOR, SUM(MEN.VALOR) As MENSALIDADE FROM SophiA.TURMAS T LEFT join sophia.MATRICULA M on M.TURMA_REGULAR = T.CODIGO LEFT join sophia.FISICA F on F.CODIGO = M.FISICA LEFT join sophia.DADOSPF DF on DF.FISICA = F.CODIGO LEFT join sophia.SEGMENTOS S on S.CODIGO = DF.SEGMENTO LEFT join sophia.TAB_DESCRICAO_DADOS TAB on TAB.FISICA = F.CODIGO LEFT join sophia.MOVFIN MOV ON MOV.VENDA = M.VENDA and MOV.PARCELA = '2' LEFT join sophia.MOVFIN MEN ON MEN.TITULO = MOV.TITULO WHERE T.CODIGO = '2214' GROUP BY T.CODIGO, F.NOME, F.CPF, T.NOME, S.DESCRICAO, F.CODEXT, F.OBSERVACOES, M.STATUS, TAB.DESCRICAO1, MEN.VALOR Desta forma, basicamente trás como resultado os três registros (mesma quantidade de registro que existe na tabela para estas condições) com números bem diferentes do registro real, não consegui associar os números a uma referencia para entender o que ocorre. Talvez algo que seja relevante mencionar é que pode-se conter números negativos nos registros, inclusive nessas colunas deste duas querys existem números negativos. Agradeço muito a atenção de todos! :)
  9. Oi gente .. estou tentando fazer um UPDATE de apenas uma coluna numa tabela (imovel) tendo como condição o codigo do vendedor do imovel (cdvendedor) então pensei que precisaria usar o INNER JOIN para conseguir realizar, mas não estou conseguindo... Aparece que tem um Erro de Sintax .. me ajudem ai por favor Código: UPDATE imovel INNER JOIN vendedor ON imovel.cdvendedor = vendedor.cdvendedor SET vlpreco = vlpreco * 0.95;
  10. Olá pessoal, gostaria de saber se é possível e como limitar a quantidade de linha retornadas usando JOIN. A ideia é limitar a quantidade de linhas retornadas da tabela filho em relação a cada linha da tabela pai. Ex. Tenho 10 registros de imóveis na tabela_imv e cada um destes possui mais de 12 imagens na tabela_imgs (cada imagem em uma linha diferente). Usando o LEFT JOIN gostaria que para cada imóvel fossem trazidas apenas 5 imagens usando LIMIT 5 de modo que a cada 5 imagens encontradas, a busca cessasse na tabela filho, e retomasse procurando as 5 primeiras imagens do próximo imóvel. Desde já agradeço a atenção.
  11. Olá pessoal, não sei se é possível mas minha ideia seria usar o operador IN dentro de um JOIN substituindo o "=". Ex: Teria uma tabela itens_cardapio (car_id, car_nome, car_bebidas) e outra tabela > bebidas (b_id, b_nome) Sei que poderia relaciona n:m tendo uma tabela tipo itens_cardapio_has_bebidas (fk_car_id, fk_b_id) porém queria fazer diferente pois para o que quero isso geraria muitas linhas na tabela de junção. Gostaria que o campo car_bebidas na 1ª tabela armazenasse os ids das bebidas da 2ª tabela. Ex. car_bebidas=1,2,5,6,9,11 e na consulta ficaria algo do tipo: SELECT i.* , GROUP_CONCAT(b.b_nome) FROM itens_cardapio i INNER JOIN bebidas b ON (b.b_id IN i.car_bebidas) Tentei também algo tipo SELECT i.* , (SELECT b.nome FROM bebidas b WHERE b.b_id IN i.car_bebidas) FROM itens_cardapio i Usei algumas variação com GROUP BY e GROUP_CONCAT,... Consegui obter resultados como: - a primeira bebida de cada item do cardápio - repetir várias vezes cada bebida por item, e outros, mas nenhum 100% correto. Se no IN usar os números dos ids das bebidas manualmente, ao invés de puxar de um campo, ele busca as bebidas pedidas, porém não fica dinâmico, pois é sempre os mesmos números de modo a todos itens do cardápio ficaram com (coca-cola,sprite,fanta) por exemplo. Se tiverem alguma ideia agradeço.
  12. Pessoal, Tenho duas tabelas: 1º rec_lider 2º rec_fiscal ambas com dados variados dentro das tabelas, porém preciso buscar três informações entre as duas, vou ver se consigo explicar aqui embaixo, tentei de tudo e não consegui, preciso muito de ajuda nessa soma. Vamos lá, vou explicar aqui embaixo: 1º Tabela (rec_lider), tenho dentro dela o cd, total_recebido 2º Tabela (rec_fiscal), tenho dentro dela o cd, total_recebimento e total_devolvido Estou usando o seguinte critério no MySql: SELECT rec_lider.cd AS Unidade, SUM(rec_lider.total_recebido) AS `Total Recebido`, SUM(rec_fiscal.total_recebimento) AS `Total Auditado`, SUM(rec_fiscal.total_devolvido) AS `Total Devolvido` FROM rec_lider INNER JOIN rec_fiscal ON rec_lider.cd = rec_fiscal.cd GROUP BY rec_lider.cd As informações estão vindo, porém esta multiplicando e ficando muito maior que o correto, tipo vou no banco conto a quantidade por exemplo de "total_recebido = 10" so que neste critério acima ele me retorno tipo "total_recebido = 110" por exemplo", já tentei de tudo não consegui um jeito de fazer correto, gostaria de pedir uma ajuda aqui para este meu problema que acredito ser bem simples, más não estou conseguindo de jeito nenhum. Postei esse mesma dificuldade em outro fórum "Ao Calcular Valores ou Quantidade o banco multiplica pela quantidade de registro - Ajuda" porém uma pessoa tentou me ajudar más não consegui fazer oque ele pediu dar certo, segui os passos dele más não retornou correto a tabela. Alguém aqui pode me ajudar, por favor? Obrigado.
  13. preciso resolver essa questão: Qual foi a diferença de tempo entre o 1º e 2º ciclista em cada etapa? (designação, vantagem) já sei usar o join mais não consigo diminuir os valores que no caso não pode ser as colunas em si mais apenas 2 dados que são o tempo do primeiro ciclista e o tempo do segundo e fazer a diminuição destes logicamente usando join para as tabelas. até ai tudo bem só preciso saber como diminuir dados em si. obrigado!!
  14. Boa Tarde, Estou com uma dúvida sobre como fazer esse Select. Nesse momento está assim: SELECT conteudo,remetente,doador_id,d.nome, instituicoes_codigo,i.nome FROM instituicoes i JOIN doador d RIGHT JOIN mensagem m ON m.instituicoes_codigo=i.codigo AND m.doador_id=d.id; O código da instituição não é obrigatório, o resto é obrigatório. Nesse comando se uma instituição tem o valor nulo o ID do doador aparece mas o nome do doador fica como nulo. Como poderia resolver esse problema?
  15. <?php // Configurações do banco de dados date_default_timezone_set("America/Recife"); if (!defined('SERVIDOR')) define('SERVIDOR', 'localhost'); if (!defined('USUARIO')) define('USUARIO', 'root'); if (!defined('SENHA')) define('SENHA', ''); if (!defined('BANCO')) define('BANCO', 'agenciawp2'); if (!defined('CHARSET')) define("CHARSET", "utf8"); // Definir URL BASE define('URL_BASE', 'http://localhost/agenciawp2/'); define('URL_ADMIN', 'http://localhost/agenciawp2/admin/'); $conexao = @mysqli_connect(SERVIDOR, USUARIO, SENHA, BANCO) or die (mysqli_connect_error()); mysqli_set_charset($conexao, CHARSET); ?> CREATE TABLE IF NOT EXISTS `categoria` ( `cat_id` int(11) NOT NULL AUTO_INCREMENT, `cat_name` varchar(60) NOT NULL, `cat_slug` varchar(60) NOT NULL, PRIMARY KEY (`cat_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; CREATE TABLE IF NOT EXISTS `post` ( `post_id` int(11) NOT NULL AUTO_INCREMENT, `post_cat_id` int(11) NOT NULL, `post_name` varchar(200) NOT NULL, `post_slug` varchar(220) NOT NULL, `post_img` varchar(100) NOT NULL, `post_text` text NOT NULL, `post_views` int(11) NOT NULL, `post_data` date NOT NULL, `post_author` varchar(200) NOT NULL, `post_ativo` int(1) NOT NULL, PRIMARY KEY (`post_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; <div class="table-responsive"> <table class="table"> <thead> <tr> <th width="6%">id</th> <th width="30%">Título</th> <th width="30%">Categoria</th> <th align="center">Ação</th> </tr> </thead> <?php $sql = "SELECT * FROM post p, categoria c WHERE p.post_cat_id = c.cat_id ORDER BY post_id DESC "; $qry = mysqli_query($conexao, $sql); while ($linha = mysqli_fetch_array($qry)) { ?> <tbody> <tr> <td align="center"><?php echo $linha["post_id"] ?></td> <td align="left"><?php echo $linha["post_name"] ?></td> <td align="left"><?php echo $linha["cat_name"] ?></td> <td ><a class="btn btn-primary" href="index.php?link=3&id<?php echo $linha["post_id"]?>">Editar</a></td> <td ><a class="btn btn-danger" href="index.php?link=3&id<?php echo $linha["post_id"]?>">Deletar</a></td> </tr> </tbody> <?php } ?> </table> </div> Neste caso não está aparecendo nada. Já não sei mais o que fazer. É algo simples. Porém, tá complicado solucionar. =============================================== Segundo caso: <?php @$ordem = isset($_GET["ordem"]) ? $_GET["ordem"]:"0"; @$campo = isset($_GET["campo"]) ? $_GET["campo"]:""; @$search = isset($_GET["search"]) ? $_GET["search"]:""; ?> <!-- PESQUISAR --> <style> .my-group .form-control{ width:50%; } </style> <form action="index.php" method="get" class=""> <div class="input-group my-group"> <input type="text" class="form-control" name="search" value="<?php //echo $search ?>" placeholder="Digite o nome do post..."> <select class="form-control" data-live-search="true" name="campo"> <option value="post_name">Postagem</option> </select> <span class="input-group-btn"> <input type="hidden" name="link" value="2"> <input class="btn btn-default" type="submit" value="Pesquisar" name="Submit"> </span> </div> </form> <h4>Lista de Posts</h4> <a href="index.php?link=4" class="btn btn-success">CADASTRAR POST</a> <br><br> <?php if ($search =="") { $sql = "SELECT * FROM post p, categoria c WHERE p.post_cat_id = c.cat_id ORDER BY post_id DESC "; (se eu tirar essa parte em negrito, exibe tudo menos o cat_name que está na tabela categorias) } else { $sql = "SELECT * FROM post WHERE $campo LIKE '%$search%' "; } $total = total($sql); if($total <= 0) { echo "Nenhum Registro Para Exibir"; } else { echo "Há " . $total . " Posts cadastrados"; } ?> <br><br> <div class="table-responsive"> <table class="table"> <thead> <tr> <th width="6%">id</th> <th width="30%">Título</th> <th width="30%">Categoria</th> <th align="center">Ação</th> </tr> </thead> <?php $lpp = 4; //linhas por páginas $inicio = $ordem * $lpp; $post = selecionar($sql . " LIMIT $inicio, $lpp"); foreach ($post as $posts) { (linha 78 - CRUD) ?> <tbody> <tr> <td align="center"><?php echo $posts["post_id"]; ?></td> <td align="left"><?php echo $posts["post_name"]; ?></td> <td align="left"><?php echo $posts["cat_name"]; ?></td> <td ><a class="btn btn-primary" href="index.php?link=3&id<?php echo $posts["post_id"];?>">Editar</a></td> <td ><a class="btn btn-danger" href="index.php?link=3&id<?php echo $posts["post_id"];?>">Deletar</a></td> </tr> </tbody> <?php } ?> </table> </div> Erro: ) Warning: Invalid argument supplied for foreach() in C:\wamp\www\agenciawp2\admin\lst\lst-post.php on line 78 A questão é como envolver a tabela categoria nesse loop. Quero listar os post e a categoria de cada post também.
  16. Prezados, Procuro idéias de como diminuir o tempo de resposta dessa consulta: SELECT "Pessoa"."CodigoPessoa", "Pessoa"."NomePessoa", "Pessoa"."Apelido", "Pessoa"."SexoPessoa", "DadosPessoa"."Matricula", "DadosPessoa"."EstadoCivil", "DadosPessoa"."Nacionalidade", "DadosPessoa"."Naturalidade", "DadosPessoa"."DataNascimento", "DadosPessoa"."NomePai", "DadosPessoa"."NomeMae", "DadosPessoa"."DataCasamento", "TipoTitulo"."Titulo", "TipoPosicao"."NomePosicao", "Grupo"."NomeGrupo", "TipoTitulo"."FK_CodigoGrupoTitulo" AS "CodigoGrupoTitulo" FROM "Pessoa" LEFT JOIN "DadosPessoa" ON "DadosPessoa"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" JOIN "TituloPessoa" ON "TituloPessoa"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" AND "TituloPessoa"."CodigoTituloPessoa" IN (SELECT "TituloPessoa"."CodigoTituloPessoa" FROM "TituloPessoa" WHERE "TituloPessoa"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" ORDER BY "TituloPessoa"."DataTitulo" DESC LIMIT 1) JOIN "TipoTitulo" ON "TipoTitulo"."CodigoTipoTitulo" = "TituloPessoa"."FK_CodigoTipoTitulo" JOIN "HistoricoPosicao" ON "HistoricoPosicao"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" AND "HistoricoPosicao"."CodigoHistoricoPosicao" IN (SELECT "HistoricoPosicao"."CodigoHistoricoPosicao" FROM "HistoricoPosicao" WHERE "HistoricoPosicao"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" ORDER BY "HistoricoPosicao"."DataPosicao" DESC LIMIT 1) JOIN "TipoPosicao" ON "TipoPosicao"."CodigoTipoPosicao" = "HistoricoPosicao"."FK_CodigoTipoPosicao" LEFT JOIN "GrupoPessoa" ON "GrupoPessoa"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" AND "GrupoPessoa"."CodigoGrupoPessoa" IN (SELECT "GrupoPessoa"."CodigoGrupoPessoa" FROM "GrupoPessoa" WHERE "GrupoPessoa"."FK_CodigoPessoa" = "Pessoa"."CodigoPessoa" ORDER BY "GrupoPessoa"."DataGrupoPessoa" DESC LIMIT 1) LEFT JOIN "Grupo" ON "Grupo"."CodigoGrupo" = "GrupoPessoa"."FK_CodigoGrupo" O resultado de retorno para 4mil registros é de 7,800 segundos, já não tenho mais idéia de como diminuir o tempo, ou montar essa consulta de outra forma.
  17. Olá pessoal. Tenho o seguinte código onde tenho duas queries, na primeira capturo o COUNT do campo nome_usuario, na segunda seleciono os campos que desejo. Gostaria de melhorar a performance, fazendo uma só query. Alguém pode me ajudar? <?php defined('BASEPATH') OR exit('No direct script access allowed'); class TodosAgendamentosFuturos_model extends CI_Model{ public function main($funcionario, $dataAtual, $limit, $start) { //Array para guardar dados a serem retornados $resultados = array(); //QUERY TO BIND TOTALCOUNT $sql = "SELECT DISTINCT COUNT(u.nome_usuario) AS total FROM horariosfuncionario hfs INNER JOIN usuario u INNER JOIN statushorariofuncionario shf INNER JOIN funcionario f INNER JOIN agendamento a INNER JOIN formapagamentosalao fps ON a.codigo_formapagamentosalao = fps.codigo_formapagamentosalao AND a.codigo_usuario = u.codigo_usuario AND a.codigo_horariosfuncionario = hfs.codigo_horariosfuncionario AND shf.codigo_statushorariofuncionario = hfs.codigo_statushorariofuncionario AND f.codigo_funcionario = hfs.codigo_funcionario WHERE STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y') > STR_TO_DATE(?, '%d/%m/%Y') AND f.codigo_funcionario = ? ORDER BY STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y'), STR_TO_DATE(hfs.horario_horariosfuncionario,'%H:%i')"; $total = $this->db->query($sql, array($dataAtual, $funcionario)); //Selecionando todos agendamentos futuros $sql = "SELECT DISTINCT u.nome_usuario, u.telefone1_usuario, u.telefone2_usuario, a.codigo_agendamento, hfs.horario_horariosfuncionario, hfs.data_horariosfuncionario, a.comentario_agendamento, fps.nome_formapagamentosalao FROM horariosfuncionario hfs INNER JOIN usuario u INNER JOIN statushorariofuncionario shf INNER JOIN funcionario f INNER JOIN agendamento a INNER JOIN formapagamentosalao fps ON a.codigo_formapagamentosalao = fps.codigo_formapagamentosalao AND a.codigo_usuario = u.codigo_usuario AND a.codigo_horariosfuncionario = hfs.codigo_horariosfuncionario AND shf.codigo_statushorariofuncionario = hfs.codigo_statushorariofuncionario AND f.codigo_funcionario = hfs.codigo_funcionario WHERE STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y') > STR_TO_DATE(?, '%d/%m/%Y') AND f.codigo_funcionario = ? ORDER BY STR_TO_DATE(hfs.data_horariosfuncionario, '%d/%m/%Y'), STR_TO_DATE(hfs.horario_horariosfuncionario,'%H:%i') LIMIT ".$limit." OFFSET ".$start; $resultado = $this->db->query($sql, array($dataAtual, $funcionario)); //Percorrendo resultados retornados foreach ($resultado->result() as $row) { //Captura dia da semana da data enviada como parâmetro usando o helper dia_semana $dia = diasemana($dataAtual); //Adiciona resultados no array resultados array_push($resultados, array('nome_usuario' => $row->nome_usuario, 'telefone1_usuario' => $row->telefone1_usuario, 'telefone2_usuario' => $row->telefone2_usuario, 'codigo_agendamento' => $row->codigo_agendamento, 'horario' => $row->horario_horariosfuncionario, 'data' => $row->data_horariosfuncionario, 'nomeDiaSemana' => $dia, 'comentario' => $row->comentario_agendamento, 'formaPagamento' => $row->nome_formapagamentosalao)); } $rows = $resultados; $data = array( "success"=>true, "totalCount"=>$total->row()->total, "menu"=>$rows ); echo json_encode($data); } }
  18. Olá pessoal, poderiam me ajudar? Tenho as seguintes tabelas: CREATE TABLE horariofuncionario ( codigo_horariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL, codigo_funcionario INTEGER UNSIGNED NOT NULL, horario_horariofuncionario VARCHAR(5) NOT NULL, data_horariofuncionario VARCHAR(10) NOT NULL, nomeDiaSemana_horariofuncionario VARCHAR(15) NOT NULL, PRIMARY KEY(codigo_horariofuncionario), FOREIGN KEY(codigo_funcionario) REFERENCES funcionario(codigo_funcionario) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_statushorariofuncionario) REFERENCES statushorariofuncionario(codigo_statushorariofuncionario) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE servicosalao ( codigo_servicosalao INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_salao INT NOT NULL, codigo_servico INTEGER UNSIGNED NOT NULL, preco_servicosalao VARCHAR(20) NULL, tempo_servicosalao INTEGER UNSIGNED NULL, descricao_servicosalao VARCHAR(200) NULL, PRIMARY KEY(codigo_servicosalao), FOREIGN KEY(codigo_salao) REFERENCES salao(codigo_salao) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_servico) REFERENCES servico(codigo_servico) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE statushorariofuncionario ( codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_statushorariofuncionario VARCHAR(30) NOT NULL, PRIMARY KEY(codigo_statushorariofuncionario) ); Preciso selecionar os HORARIOFUNCIONARIO.horario_horariofuncionario em que o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja 1 ou 3 e que não contenha nenhum registro na tabela horariofuncionario em que o HORARIOFUNCIONARIO.horario_horariofuncionario esteja entre o HORARIOFUNCIONARIO.horario_horariofuncionario e o HORARIOFUNCIONARIO.horario_horariofuncionario + SERVICOSALAO.tempo_servicosalao e o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja igual a 2. Então tenho a query: SELECT hf.horario_horariofuncionario FROM horariofuncionario hf WHERE hf.codigo_statushorariofuncionario IN (1,3) HAVING (SELECT COUNT(hf.codigo_horariofuncionario) FROM horariofuncionario hf NATURAL JOIN servicosalao ss WHERE hf.codigo_statushorariofuncionario = 2 AND STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE(ss.tempo_servicosalao,'%H:%i') ) ) ) ) < 1;Está retornando o erro: Invalid use of group function ErrorNr 1111
  19. mnmn

    Uso de group function

    Olá pessoal, poderiam me ajudar com esse erro? Tenho o seguinte SELECT no qual preciso selecionar somente os horario_horariofuncionario que estejam em um determinado período de tempo (para isso uso a função BETWEEN) e com o codigo_statushorariofuncionario 1 ou 3, (para isso uso a função IN). O sub select não pode retornar nenhum resultado, por isso ao final do sub select adicionei = 0. SELECT hf.horario_horariofuncionario FROM horariofuncionario hf WHERE hf.codigo_statushorariofuncionario IN (1,3) AND (SELECT COUNT(hf.codigo_statushorariofuncionario) FROM horariofuncionario hf NATURAL JOIN servicosalao ss WHERE STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN (STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE(ss.tempo_servicosalao,'%i') ) ) ) ) AND hf.codigo_statushorariofuncionario = 2) = 0; Contudo essa query está retornando o erro: Invalid use of group function ErrorNr: 1111 Agradeço desde já a ajuda de todos.
  20. Primeiramente gostaria de agradecer a todos que puderem ou tentarem me ajudar e peço desculpas se o pedido de ajuda se encontra em um lugar errado, então vamos lá Estou desenvolvendo um chat como trabalho do curso técnico, mas o problema que na pagina chat.php os usuarios que consigo colocar na tela são todos os usuarios da tabela USUARIOS e eu gostaria de colocar somente aqueles usuarios que esta cadastrado o id na tabela amigos esse é meu banco de dados, que eu tenho como tabelas são amigos mensagens e usuarios. essa é minha tabela usuarios e essa é minha tabela amigos. na tabela amigos eu identifico que a id 4 é amigo do id 8 e o id 8 é amigo do id 6 que estão na tabela usuarios o problema é que não consigo fazer um SELECT para buscar exatamente só os amigos do usuario com JOIN DA DUAS TABELAS "usuarios e amigos" com esse codigo aqui <?php session_start(); include_once "defines.php"; require_once('classes/BD.class.php'); BD::conn(); if(!isset($_SESSION['email_logado'], $_SESSION['id_user'])){ header("Location: index.php"); } $pegaUser = BD::conn()->prepare("SELECT * FROM `usuarios` WHERE `email` = ?"); $pegaUser->execute(array($_SESSION['email_logado'])); $dadosUser = $pegaUser->fetch(); if(isset($_GET['acao']) && $_GET['acao'] == 'sair'){ unset($_SESSION['email_logado']); unset($_SESSION['id_user']); session_destroy(); header("Location: chat.php"); } ?> <!DOCTYPE HTML> <html lang="pt-BR"> <head> <meta charset=UTF-8> <title>Chat Hulk</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery_play.js"></script> <script type="text/javascript"> $.noConflict(); </script> </head> <body> <span class="user_online" id="<?php echo $dadosUser['id'];?>"></span> <h2>Bem vindo, <?php echo $dadosUser['nome'];?></h2> <a href="?acao=sair">Sair</a> <aside id="users_online"> <ul> <?php $pegaUsuarios = BD::conn()->prepare("SELECT * FROM `usuarios` WHERE `id` != ?"); $pegaUsuarios->execute(array($_SESSION['id_user'])); while($row = $pegaUsuarios->fetch()){ $foto = ($row['foto'] == '') ? 'default.jpg' : $row['foto']; $blocks = explode(',', $row['blocks']); $agora = date('Y-m-d H:i:s'); if(!in_array($_SESSION['id_user'], $blocks)){ $status = 'on'; if($agora >= $row['limite']){ $status = 'off'; } ?> <li id="<?php echo $row['id'];?>"> <div class="imgSmall"><img src="fotos/<?php echo $foto;?>" border="0" /></div> <a href="#" id="<?php echo $_SESSION['id_user'].':'.$row['id'];?>" class="comecar"><?php echo utf8_encode($row['nome']);?></a> <span id="<?php echo $row['id'];?>" class="status <?php echo $status;?>"></span> </li> <?php }}?> </ul> </aside> <aside id="chats"> </aside> <script type="text/javascript" src="js/functions.js"></script> </body> </html> a pagina chat.php fica assim. com todos usuarios da tabela usuarios gostaria de só selecionar os amigos de cada Usuário desde já agradeço.
  21. Fala galera. Vejam se podem me ajudar. Preciso reduzir o custo da query abaixo, que está em 65128 de acordo com o EXPLAIN PLAN do SQL Developer. Alguém tem alguma ideia de como reduzir mais esse custo, pois já é a terceira vez que tenho de mexer nela e já reduzi o custo dentro do conhecimento que possuo. SELECT DISTINCT CEE.CD_SEQ_EMP_UNICO, DECODE( EU.CD_TIPO, 'E', EM.NM_FUNCIONARIO, CO.NM_EMPRESA ) "NOME", DECODE( EU.CD_TIPO, 'E', EU.CD_MATRICULA, NULL ) "MATRICULA", DECODE( EU.CD_TIPO, 'E', EM.CD_SITUACAO_RH, NULL ) "SITUACAO", EU.CD_TIPO, EU.CD_SUPERVISOR FROM CTRL_EPI_EMPREGADOS CEE, EMPREG_UNICO EU, EMPREGADO EM, EMPRESA CO, SIP_USUARIOS SU, CAD_SETOR CS WHERE CEE.CD_SEQ_EMP_UNICO = EU.CD_SEQ_EMP_UNICO AND ( ( EU.CD_TIPO = 'E' and EM.CD_MATRICULA = EU.CD_MATRICULA ) OR ( EU.CD_TIPO = 'C' and CO.CD_EMPRESA = EU.CD_CONTRATADO ) ) AND CEE.NM_USUARIO_INI = SU.NM_LOGIN_USUARIO AND SU.CD_SETOR = CS.CD_SETOR AND CS.CD_EMPRESA = :GLOBAL.LOCAL --8 ou 10 ORDER BY 2; Estou rodando essa query através de uma aplicação feita no Oracle Forms Builder. E essa aplicação agora está demorando horas para trazer os resultados. Aguardo retorno. Abraço.
  22. Eu tenho duas tabelas (clientes e imóveis). Na tabela de clientes eu tenho os dados pessoais do cliente e os interesses que ele tem. Tabela "dbc_customers": +----+-------+---------+---------+------+--------+-----------+-----------+--------+ | id | name | email | bedroom | bath | garage | min_price | max_price | status | +----+-------+-----------------+---------+------+--------+-----------+-----------++ | 1 | Maria | maria | 4 | 2 | 0 | 0.00 | 0.00 | 1 | | 2 | John | john | 4 | 0 | 0 | 0.00 | 0.00 | 1 | | 3 | Julia | julia | 0 | 0 | 0 | 0.00 | 0.00 | 1 | | 4 | Ana | ana | 0 | 0 | 0 | 0.00 | 0.00 | 0 | +----+-------+-----------------+---------+------+--------+-----------+-----------++ Na tabela imóveis eu tenho os dados de cada casa registrada. Tabela "dbc_posts": +----+------+---------+---------+------+--------+-------------+------------+--------+ | id | city | address | bedroom | bath | garage | total_price | year_built | status | +----+------+---------+---------+------+--------+-------------+------------+--------+ | 1 | 3 | st 21 | 4 | 2 | 1 | 200.00 | 2010 | 1 | | 2 | 3 | st 22 | 4 | 3 | 4 | 10.00 | 2000 | 1 | | 3 | 3 | b 12 | 2 | 1 | 5 | 40.00 | 2014 | 1 | | 4 | 2 | b 14 | 3 | 2 | 2 | 30.00 | 2013 | 1 | +----+------+---------+---------+------+--------+-------------+------------+--------+ Eu preciso de alguma forma comparar os interesses de cada cliente, com cada casa e mostrar o número de casas compatíveis com cada cliente, o resultado seria algo como isto: Client1 || cliente1@email.com || 4 properties compatible Client2 || cliente2@email.com || 7 properties compatible No entanto já tentei várias formas, eu já quebrei a cabeça, eu já tenho resultados semelhantes, mas algo está sempre errado. Neste código abaixo ele conta corretamente quantas casas são compatíveis com cada cliente, mas também mostra os clientes com interesses vazios e eu preciso mostrar apenas os clientes que encheram os interesses e mostrar as casas compatíveis com eles. Esse código funciona no entanto, ele exibe todos os clientes, mesmo que eles estão com interesses vazias. Meu código atual: <?php #Select all active customers and order by id desc $query = mysql_query("SELECT * FROM dbc_customers WHERE status='1' ORDER BY id DESC") or die(mysql_error()); #No customers found if (mysql_num_rows($query) < 1){ echo "No customers found!"; } else { #Set vars $where=""; $i=1; while ($row = mysql_fetch_object($query)) { #Define "where" clause according to values of the table column if (!empty($row->bedroom)) $where .= "bedroom='$row->bedroom' AND "; if (!empty($row->bath)) $where .= "bath='$row->bath' AND "; //if (!empty($row->garage)) $where .= "c.garage = p.garage AND "; #Count all posts compatibles with each customer $query2 = mysql_query("SELECT id FROM dbc_posts WHERE $where status='1'") or die(mysql_error()); #If none posts found break the loop, exit and show a message error, else show number of posts found if (mysql_num_rows($query2) < 1){ break; exit; } else { $result = mysql_num_rows($query2); } #Select only one post compatible for each customer $query3 = mysql_query("SELECT DISTINCT id FROM dbc_posts WHERE $where status='1' LIMIT 1") or die(mysql_error()); #Flag for where var if ($query2 and $query3) $where = ""; #Loop for each result of query3 and show customers and yours compatibles posts while ($row3 = mysql_fetch_object($query3)) { #Show customers echo "<b>".$row->name."</b> || ".$row->email." || <a href='#'><b>".mysql_num_rows($query2)." properties compatible</b></a><br />"; } } #If none compatibles posts with customers was found if ($result < 1){ echo "No listings were found compatible with any client!"; } } ?> Acredito que o meu código poderia estar totalmente errado a partir do seguinte variável query3.
  23. Pessoal, a seguinte string me retorna o total de gastos com treinamentos por colaborador: SELECT SUM(tr.valor_total) as valor_total_treinamentos FROM treinamentos_realizados tr JOIN colaboradores c ON C.cpf = tr.cpf_colaborador WHERE tr.cpf_colaborador = '12365487995' Na tabela colaboradores, eu tb tenho a data do treinamento, ai tipo preciso de uma string que eu pegue esse total, mas por mês, de jan a dez. No caso vou jogar em um array (mes, valor). alguém sabe como consigo isso, sem consultar mês a mês?
  24. Boa tarde amigos. Estou com um bom desafio. Preciso de uma luz em como fazer junção com 5 tabelas diferentes. Até agora eu fiz isso: SELECT n.tit1 AS Titulo, n.year AS Ano, n.code AS ISBN, n.indexint = 2 AS Nível, e.expl_typdoc = 27 AS Mídia, e.expl_location = 4 AS Filial FROM notices n INNER JOIN exemplaires e ON n.notice_id = e.expl_notice Os campos Nível, Mídia e Filial retornam valor 0. Descobri que cada um tem a sua própria tabela e que poderia utiliza-las. Os valores que preciso para essa pesquisa não estão nas tabelas utilizadas nessa query (notices e exemplaires). Qual é a melhor forma de fazer um join com essas 5 tabelas??
  25. Olá. Eu estou fazendo uma pesquisa no mysql, e selecionei exemplares que foram emprestados durante um certo período, filtrando por Filial e Níveis. Os níveis ficam na tabela I Os empréstimos na tabela P E as informações do livro ficam na tabela N ( onde também tenho o id dos níveis) Utilizei a seguinte query: SELECT (SELECT COUNT(n.id_I =1)) AS 'A1', (SELECT COUNT(n.id_I =2)) AS 'A2', (SELECT COUNT(n.id_I=4)) AS 'B1', (SELECT COUNT(n.id_I =5)) AS 'B2' FROM P p INNER JOIN N n ON n.id = p.id WHERE YEAR( p.datetime ) = '2013' AND MONTH( p.datetime ) = '10' AND p.local = 2 Pelo pouco que entendo o resultado deveria ser a contagem de empréstimos em cada nível, no período e na filial determinada.Mas o resultado são valores iguais em cada nível. Alguém pode me esclarecer porque isso acontece??
×
×
  • Criar Novo...