Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Select em 3 Tabelas difirentes (em PHP)


manogaucho

Pergunta

Tudo bem!

Tenho um Backup de uma loja, minha amiga esta querendo realizar umas pesquisas, e pediu para mim criar uma pagina que mostre a pesquisa, mas sem ajuda de todos não vou poder realizar.

Estou querendo realizar um Select em 3 Tabelas diferentes, mas que tenha campo “NroCupom” em comum entre elas, lembrando tambem que o valor dela é o mesmo nas 3 tabelas.

1ª so quero os resultados que tem o valor “13” do campo “CodFpagto” da Tabela ”fpagtoCupom”

2ª Com valores maiores que “ 52” do campo “CodFpagto” da Tabela ”fpagtoCupom”

3ª Ordenados pelo campo “valor” da Tabela ”fpagtoCupom”. Aqui fiz um select que funciona, mas somente na tabela ”fpagtoCupom”, que seria minha tabela principal.

4ª se possivel que mostre 30 resultados por pagina.

Abaixo estão minhas Tabelas:

Tabelas:

fpagtoCupom :

CREATE TABLE IF NOT EXISTS `fpagtoCupom` (
  `nroloja` int(11) NOT NULL DEFAULT '0',
  `NroCupom` char(6) NOT NULL DEFAULT '',
  `Pdv` char(3) NOT NULL DEFAULT '',
  `CodFpagto` tinyint(2) NOT NULL DEFAULT '0',
  `Sequencia` tinyint(2) NOT NULL DEFAULT '0',
  `Valor` decimal(9,2) NOT NULL DEFAULT '0.00',
  `DataProc` date NOT NULL DEFAULT '0000-00-00',
  `documento_1` varchar(20) DEFAULT NULL,
  `documento_2` varchar(20) DEFAULT NULL,
  `documento_3` varchar(20) DEFAULT NULL,
  `documento_4` varchar(20) DEFAULT NULL,
  `documento_5` varchar(20) DEFAULT NULL,
  `documento_6` varchar(20) DEFAULT NULL,
  `flgtroca` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`nroloja`,`DataProc`,`Pdv`,`NroCupom`,`Sequencia`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


contravale :

CREATE TABLE IF NOT EXISTS `contravale` (
  `nroloja` int(11) DEFAULT '0',
  `pdv` char(3) NOT NULL DEFAULT '',
  `horaminseg` time NOT NULL DEFAULT '00:00:00',
  `supervisor` char(6) NOT NULL DEFAULT '',
  `operador` char(6) NOT NULL DEFAULT '',
  `nroabertura` int(9) NOT NULL DEFAULT '0',
  `valor` decimal(9,2) NOT NULL DEFAULT '0.00',
  `nrocupom` char(6) NOT NULL DEFAULT '',
  `dataproc` date NOT NULL DEFAULT '0000-00-00',
  UNIQUE KEY `fk_cupom` (`nroloja`,`dataproc`,`pdv`,`nrocupom`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



cupom :

CREATE TABLE IF NOT EXISTS `cupom` (
  `nroloja` int(11) NOT NULL DEFAULT '0',
  `NroCupom` varchar(6) NOT NULL DEFAULT '',
  `Pdv` char(3) NOT NULL DEFAULT '',
  `HoraMinSeg` datetime DEFAULT NULL,
  `Operador` varchar(6) DEFAULT NULL,
  `NroItens` smallint(6) NOT NULL DEFAULT '0',
  `Troco` decimal(9,2) NOT NULL DEFAULT '0.00',
  `HoraMinSegTotal` datetime DEFAULT NULL,
  `HoraFim` datetime DEFAULT NULL,
  `FlagInicupom` tinyint(4) NOT NULL DEFAULT '0',
  `FlagFimCupom` tinyint(4) NOT NULL DEFAULT '0',
  `FlagEstorno` tinyint(4) NOT NULL DEFAULT '0',
  `FlagIE` tinyint(4) NOT NULL DEFAULT '0',
  `CgcCliente` varchar(14) NOT NULL DEFAULT '',
  `DataProc` date NOT NULL DEFAULT '0000-00-00',
  `Fininvest` tinyint(4) NOT NULL DEFAULT '0',
  `Recebimento` tinyint(4) NOT NULL DEFAULT '0',
  `RecargaCelular` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `Bandeira` tinyint(4) NOT NULL DEFAULT '0',
  `LV` tinyint(1) NOT NULL DEFAULT '0',
  `CodigoCliente` bigint(20) NOT NULL DEFAULT '0',
  `TipoCupom` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `codVendedor` varchar(6) DEFAULT '000000',
  `codDescontoSubt` tinyint(4) NOT NULL DEFAULT '0',
  `Acrescimo` decimal(11,2) NOT NULL DEFAULT '0.00',
  `gtvenda` double DEFAULT NULL,
  `gtestorno` double DEFAULT NULL,
  `gtdesconto` double DEFAULT NULL,
  `tipooperacao` tinyint(4) NOT NULL DEFAULT '0',
  `bonus` double(12,4) NOT NULL,
  `codempresa` int(6) NOT NULL DEFAULT '0',
  `cupcancel` int(11) NOT NULL DEFAULT '0',
  `total` double(9,2) NOT NULL,
  `desconto` double(11,2) NOT NULL DEFAULT '0.00',
  `codnoiva` varchar(13) DEFAULT NULL,
  `convidado` varchar(40) DEFAULT NULL,
  `NOMECLIENTE` varchar(40) DEFAULT NULL,
  `numabertura` int(11) NOT NULL,
  PRIMARY KEY (`nroloja`,`DataProc`,`Pdv`,`NroCupom`),
  KEY `HoraMinSeg` (`nroloja`,`HoraMinSeg`),
  KEY `Operador` (`nroloja`,`Operador`,`DataProc`,`FlagEstorno`),
  KEY `dtcupom` (`DataProc`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Abaixo Esta um select base, somente com um campo, mas preciso realizar pesquisa entre os 3 acimas. Minha pagina “lista_cupom.php”, tambem criei a apgina “conexao.php’, mas esssa não precisa, que esta funcionando.
<html>
<head>
<title>Lista Teste </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<p>  
<?php

include ('conexao.php');

$sql = "SELECT 
            * 
        FROM 
            fpagtocupom
            WHERE  CodFpagto = 13
            AND Valor > 52
        ORDER BY Valor";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta.");

?>

<table align="center" border="4">

<tr> 
    <th>Numero do Cupom:</th>
    <th>PDV:</th>
    <th>Forma de Pagamentor:</th>
    <th>Valor:</th>
    <th>DATA:</th>
    <th>Valor em Real do Contravale:</th>
    <th>Data Criado Controvale:</th>
    <th>Hora Criado Controvale:</th>
    <th>DATA E HORA Passou no Caixa:</th>
    <th>PDV Que Passou o Cupom:</th>
    <th>Valor Total no Caixa:</th>
</tr>

<?php


while ($linha = mysql_fetch_array($resultado, MYSQL_ASSOC))
{


    echo "<tr>";
    echo "<td>{$linha['NroCupom']}</td>";
    echo "<td>{$linha['Pdv']}</td>";
    echo "<td>{$linha['CodFpagto']}</td>";
    echo "<td>{$linha['Valor']}</td>";
    echo "<td>{$linha['DataProc']}</td>";
    echo "</tr>";
}

echo "</table>";

?>




  
</p>
</body>
</html>
Aqui mostra as ligações que teriam que mostar.Tem haver com a pagina acima.
Da Tabela "contravale"


"Valor em Real do Contravale"    > Nome do Campo "valor"

"Data Criado Controvale"         > Nome do Campo "dataproc"

"Hora Criado Controvale:"        > Nome do Campo "horaminseg"


e na Tabela "Cupom"



"DATA E HORA Passou no Caixa"    > Nome do Campo "HoraMinSeg"

"PDV Que Passou o Cupom"         > Nome do Campo "Pdv"

"Valor Total no Caixa"           > Nome do Campo "total"

"SELECT * FROM fpagtocupom WHERE  CodFpagto = 13 AND Valor > 52 ORDER BY Valor"

Desde já agradeço a ajuda.

Editado por manogaucho
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

amigo,

bom dia.

1ª so quero os resultados que tem o valor “13” do campo “CodFpagto” da Tabela ”fpagtoCupom”

R: clausula WHERE CodFpagto = 13

2ª Com valores maiores que “ 52” do campo “CodFpagto” da Tabela ”fpagtoCupom”

R: clausula WHERE mais uma vez... AND valor > 52

3ª Ordenados pelo campo “valor” da Tabela ”fpagtoCupom”. Aqui fiz um select que funciona, mas somente na tabela ”fpagtoCupom”, que seria minha tabela principal.

R: clausula ORDER BY VALOR

4ª se possivel que mostre 30 resultados por pagina.

R: limit 30

para relacionar as tabelas utilize o JOIN

select *

from tabela1

join tabela2 on (tabela1.cod = tabela2.cod)

Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim:

SELECT *
FROM fpagtoCupom fc
INNER JOIN contravale cv ON cv.NroCupom = fc.NroCupom
INNER JOIN cupom cp ON cp.NroCupom = fc.NroCupom
WHERE fc.CodFpagto = 13 AND fc.Valor  > 52
ORDER BY fc.Valor
LIMIT (0,30)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...