InnerJoin
select
c.IDCLIENTE,
c.NOMECLIENTE,
a.descricao,
A.idcidade
FROM cliente c left join cidade a
on (C.idcidade = A.idcidade)
where C.idcidade in (select idcidade from cidade where descricao starting with 'ALTO P')
select
c.IDCLIENTE,
c.NOMECLIENTE,
a.descricao,
A.idcidade
FROM cliente c left join cidade a
on (C.idcidade = A.idcidade)
where C.idcidade in (select idcidade from cidade where descricao starting with 'ALTO P')
//INNER TRAZ AS 2 IGUAIS
//LEFT PRIORIZA TB DA ESQUERDA
//RIGHT PRIORIZA TB DA DIREITA
select
p.idproduto,
p.descricao,
g.idgrupo,
g.descricao
from grupo g right join produtos p
on (g.idgrupo = p.idgrupo) ///correto
where g.idgrupo is null
order by g.descricao
select
p.idproduto,
p.descricao,
g.idgrupo,
g.descricao // fazendo dessa maneira é errado
from produtos p, grupo g
where (g.idgrupo is null)
order by g.descricao
//Selecionando vendas e clientes por um periodo de datas
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente
from cliente c inner join venda v
on(v.idcliente = c.idcliente)
where v.datavenda between :dt1 and :dt2 //passando parametros e mostra a janela de seleção de datas
order by v.datavenda
//Selecionando vendas e clientes por um periodo de datas
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente
from cliente c inner join venda v
on(v.idcliente = c.idcliente)
where v.datavenda between ('11/01/2018') and ('11/08/2018') //sem parametros, modo natural
order by v.datavenda
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
p.descricao
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on(p.idproduto = i.idproduto)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
p.descricao,
s.idservicos,
s.descricao
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on (p.idproduto = i.idproduto)
left join servicos s on (s.idservicos = i.idservico)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
// Selecionando utilizando case para juntar a tabela produtos e serviços.
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
-- p.descricao,
s.idservicos,
-- s.descricao,
case i.tipo_item
when 'P' then p.descricao
when 'S' then s.descricao
end
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on (p.idproduto = i.idproduto)
left join servicos s on (s.idservicos = i.idservico)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
coalesce
c.IDCLIENTE,
c.NOMECLIENTE,
a.descricao,
A.idcidade
FROM cliente c left join cidade a
on (C.idcidade = A.idcidade)
where C.idcidade in (select idcidade from cidade where descricao starting with 'ALTO P')
select
c.IDCLIENTE,
c.NOMECLIENTE,
a.descricao,
A.idcidade
FROM cliente c left join cidade a
on (C.idcidade = A.idcidade)
where C.idcidade in (select idcidade from cidade where descricao starting with 'ALTO P')
//INNER TRAZ AS 2 IGUAIS
//LEFT PRIORIZA TB DA ESQUERDA
//RIGHT PRIORIZA TB DA DIREITA
select
p.idproduto,
p.descricao,
g.idgrupo,
g.descricao
from grupo g right join produtos p
on (g.idgrupo = p.idgrupo) ///correto
where g.idgrupo is null
order by g.descricao
select
p.idproduto,
p.descricao,
g.idgrupo,
g.descricao // fazendo dessa maneira é errado
from produtos p, grupo g
where (g.idgrupo is null)
order by g.descricao
//Selecionando vendas e clientes por um periodo de datas
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente
from cliente c inner join venda v
on(v.idcliente = c.idcliente)
where v.datavenda between :dt1 and :dt2 //passando parametros e mostra a janela de seleção de datas
order by v.datavenda
//Selecionando vendas e clientes por um periodo de datas
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente
from cliente c inner join venda v
on(v.idcliente = c.idcliente)
where v.datavenda between ('11/01/2018') and ('11/08/2018') //sem parametros, modo natural
order by v.datavenda
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
p.descricao
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on(p.idproduto = i.idproduto)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
p.descricao,
s.idservicos,
s.descricao
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on (p.idproduto = i.idproduto)
left join servicos s on (s.idservicos = i.idservico)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
// Selecionando utilizando case para juntar a tabela produtos e serviços.
select v.idvenda,
v.datavenda,
v.totalvenda,
c.idcliente,
c.nomecliente,
i.iditensvenda,
p.idproduto,
-- p.descricao,
s.idservicos,
-- s.descricao,
case i.tipo_item
when 'P' then p.descricao
when 'S' then s.descricao
end
from cliente c
inner join venda v on (v.idcliente = c.idcliente)
left join itensvenda i on (i.idvenda = v.idvenda)
left join produtos p on (p.idproduto = i.idproduto)
left join servicos s on (s.idservicos = i.idservico)
where v.datavenda between :dt1 and :dt2
order by v.idvenda, p.descricao
coalesce
https://www.devmedia.com.br/trabalhando-com-joins-no-firebird/33054
ResponderExcluirhttps://www.devmedia.com.br/inner-cross-left-rigth-e-full-joins/21016
tutorial sql avançado
ResponderExcluirhttps://www.1keydata.com/pt/sql/sql-coalesce.php
http://t2ti.com/curso/video/delphi/iniciante/delphi_starter.php
ResponderExcluirhttps://king.host/wiki/artigo/como-criar-autoincrement-no-firebird/
ResponderExcluir