Ir para conteúdo

brendow

Members
  • Total de itens

    10
  • Registro em

  • Última visita

Posts postados por brendow


  1. Pessoal, preciso urgentemente de fazer um relatório, mas não consigo fazer de jeito nenhum... Será que poderiam me ajudar?

     

    Possuo a tabela geral tb_turg que guarda os registros assim:

     

    idmodg: 13 (codigo do módulo)

    codturg: 101 (código da turma)

    iniclasg: 2020-01-13 (data de inicio)

    terclasg: 2020-02-21 (data de termino)

    weekg: 1,3,5 (dias da semana que tem curso, neste caso: segunda, quarta e sexta)

     

    Cada aluno possui uma tabela. O aluno id 1 possui a tabela tb_z1 e guarda os registros assim:

     

    idcur      | codtur               | diafrq

    13           | 101                     | 2020-01-13

    13           | 101                     | 2020-01-17

    13           | 101                     | 2020-01-20

    13           | 101                     | 2020-01-22

    13           | 101                     | 2020-01-29

    13           | 101                     | 2020-01-31

    13           | 101                     | 2020-02-03

    13           | 101                     | 2020-02-05

    13           | 101                     | 2020-02-07

    etc...

     

    Como calcular:

    Quantos dias e quais os dias da tabela tb_turg da data de inicio (iniclasg) até a data de término (terclasg), mas somente nos dias especificados na semana (weekg), que seriam

     

    2020-01-13, 2020-01-15, 2020-01-17,

    2020-01-20, 2020-01-22, 2020-01-24,

    2020-01-27, 2020-01-29, 2020-01-31,

    2020-02-03, 2020-02-05, 2020-02-07,

    2020-02-10, 2020-02-12, 2020-02-14,

    2020-02-17, 2020-02-19, 2020-02-21,

    Daria: 18 DIAS

     

    Quantos dias de frequência teve o aluno id 1

    09 DIAS (por exemplo)

     

    Obtido os dados, deve-se verificar:

    Quantos dias de FALTA obteve o aluno id 1?

     

    Preciso gerar um relatório passando o código do módulo (13) e o código da turma (101) via GET. Alguém pode me ajudar? Obrigado

    Seria mais ou menos assim que deveria ficar (imagem anexo)

    REL02.png


  2. Veja a resposta:

    SELECT c.idcli,c.nomei,c.generoi,c.fotocli, t.idativ,t.qturma,t.idalunos, SET( @a = 13,3,6 ) FROM tb_cli c RIGHT JOIN tb_tur t ON c.idcli != REGEXP CONCAT( '(^|,)(', REPLACE(@a, ',', '|'), ')(,|$)' ) WHERE EXISTS(SELECT t.idalunos FROM tb_tur WHERE c.idcli != REGEXP CONCAT( '(^|,)(', REPLACE(@a, ',', '|'), ')(,|$)' ) AND t.idativ = '13' AND t.qturma = 'turmaa') ORDER BY c.nomei ASC

    Notice: Trying to get property of non-object  e bla bla bla

    ------

    Mesmo se eu escrever os números REGEXP CONCAT( '(^|,)(', REPLACE(13,3,6, ',', '|'), ')(,|$)' ) o erro continua: <br>

    SELECT c.idcli,c.nomei,c.generoi,c.fotocli, t.idativ,t.qturma,t.idalunos, SET( @a = 13,3,6 ) FROM tb_cli c RIGHT JOIN tb_tur t ON c.idcli != REGEXP CONCAT( '(^|,)(', REPLACE(13,3,6, ',', '|'), ')(,|$)' ) WHERE EXISTS(SELECT t.idalunos FROM tb_tur WHERE c.idcli != REGEXP CONCAT( '(^|,)(', REPLACE(13,3,6, ',', '|'), ')(,|$)' ) AND t.idativ = '13' AND t.qturma = 'turmaa') ORDER BY c.nomei ASC
    Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in xxxxxx:139 Stack trace: #0 {main} thrown in xxxxxx on line 139

    linha 139 while($rowct = $query->fetch_assoc()) { 

  3. A tabela CLIENTES (tb_cli) é acessada muitas vezes e todas as colunas terminam com "i" (nomei)
    A tabela TURMAS (tb_tur) será utilizada somente na página para adicionar/remover alunos das turmas, somente para relacionar dados de atividade/turma/alunos. Cada atividade pode ter 4 turmas (manhã, tarde, noite, sábado), há um rodízio muito grande de alunos (trocando de turmas sem parar).

    idtur = id da turma
    idativ = id da atividade
    qturma = qual turma
    idalunos = id do cliente (depois de matriculado se torna aluno)
    dt_tur = data de abertura da turma - hr_tur = hora que foi criada a turma  (para geração de relatórios administrativos)
    ---------------------------------------------

    Isso o que @Motta?


  4. Consulta mySQL para encontrar IDs específicos entre duas tabelas armazenadas diferentemente

    Tenho uma coluna na tabela `tb_tur` que armazena assim:
    ```
    idalunos-> 3,6,12 (Na tabela td_tur os IDs estão estão armazenados NUMA linha e separados por vírgula)
    ```
    estes números são referentes aos id de usuários. É preciso realizar uma consulta retirando alguns IDs e deixando outros, exemplo:
    ```
    SELECT c.idcli,c.nomei,c.generoi,c.fotocli, t.idalunos FROM tb_cli c RIGHT JOIN tb_tur t ON c.idcli != t.idalunos
    idcli (Na tabela td_cli os IDs estão estão armazenados por linha normalmente)
    1
    2
    3
    4
    5
    6
    etc
    ```
    Como realizar uma consulta SQL onde não serão listados os IDs 3,6,etc? <br>

     

    EU PRECISO USAR ASSIM: (Veja na imagem)
    $sqlclitur = "SELECT c.idcli,c.nomei,c.generoi,c.fotocli, t.idativ,t.qturma,t.idalunos FROM tb_cli c RIGHT JOIN tb_tur t ON c.idcli != t.idalunos 
    WHERE EXISTS(SELECT t.idalunos FROM tb_tur WHERE c.idcli != t.idalunos AND t.idativ = '$idatv' AND t.qturma = '$idtur') 
    ORDER BY c.nomei ASC";


    Obrigado! <br>
     

    tb_cli - tb_tur.png

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.