OFF-TOPIC DUVIDA INSTRUCAO SQL
(OFF-Topic) Dúvida instrução sql
Alguém poderia ajudar, estou com dúvida em fazer o seguinte select.
Primeiro dou um
select campo from tabela_b
este select irá devolver n registros, digamos um vetor com vários numeros (33213123,66456646 etc....);
aàpossuo uma tabela como descrita abaixo,
primeiramente preciso de um select que irá excluir todos os registros onde o campo_a esteja no select acima...
depois, que some todos os valores do campo_b
tabela_A
campo_a campo_b
33213123 123,00
53535554 223,00
34654646 500,00
66456646 800,00
43426646 899,00
64566646 300,00
11111664 254,00
62541764 135,00
ficaria assim
campo_a campo_b
33213123 123,00**este valor não sairia pois está no primeiro select
53535554 223,00
34654646 500,00
66456646 800,00**este valor não sairia pois está no primeiro select
43426646 899,00
64566646 300,00
11111664 254,00
62541764 135,00
depois a soma dos valores (223+500+899+300+254+135),
caso alguém possa ajudar, ou mesmo indicando uma apostila avançada, com uma pista de como procurar,
obrigado a todos
Alguém poderia ajudar, estou com dúvida em fazer o seguinte select.
Primeiro dou um
select campo from tabela_b
este select irá devolver n registros, digamos um vetor com vários numeros (33213123,66456646 etc....);
aàpossuo uma tabela como descrita abaixo,
primeiramente preciso de um select que irá excluir todos os registros onde o campo_a esteja no select acima...
depois, que some todos os valores do campo_b
tabela_A
campo_a campo_b
33213123 123,00
53535554 223,00
34654646 500,00
66456646 800,00
43426646 899,00
64566646 300,00
11111664 254,00
62541764 135,00
ficaria assim
campo_a campo_b
33213123 123,00**este valor não sairia pois está no primeiro select
53535554 223,00
34654646 500,00
66456646 800,00**este valor não sairia pois está no primeiro select
43426646 899,00
64566646 300,00
11111664 254,00
62541764 135,00
depois a soma dos valores (223+500+899+300+254+135),
caso alguém possa ajudar, ou mesmo indicando uma apostila avançada, com uma pista de como procurar,
obrigado a todos
tente o seguinte
delete tabela_B where campo_a in (o select que vc quer.)
delete tabela_B where campo_a in (o select que vc quer.)
obrigado pela dica, mas não posso deletar nenhum registro da tabela.
Citação:primeiramente preciso de um select que irá excluir todos os registros
Cuidado ao se expressar. Uma frase mal colocada receberá uma resposta equivocada!
Espero que não estejamos valando de Access!!!!
Use UNION, uma união sem o uso da opção ALL remove todas as duplicidades (equivale ao uso de DISTINCT).
SELECT campoa, campob FROM tabela_a
UNION
SELECT campoa, campob FROM tabela_b
Com relação a soma:
Tendo em visto que uma soma ira retornar uma única linha NÃO é possÃÂÂvel na mesma consulta exibir múltiplas linhas e a soma das mesmas.
Uma solução é o uso de subquery na clausula FROM (novamente espero que não estejamos falando de Access).
SELECT sum(s.campob)
FROM
( SELECT campoa, campob FROM tabela_a
UNION
SELECT campoa, campob FROM tabela_b ) s
Citação:FIREONBOMB escreveu:
obrigado pela dica, mas não posso deletar nenhum registro da tabela.
Kara eu tbem teria dito para vc deletar....o JOSE.NIZ tem razão...cuidado...
E a sugestão dele pode ser aplicada perfeitamente......
Se for o que entendi, vc pode fazer assim:
Explicando:
SELECT SUM(campo_b) FROM tabela_a
Soma os valores do cambo_b na tabela_a
WHERE campo_a NOT IN (SELECT campo FROM tabela_b)
Pega todos os registros em que o campo_a NÃO ESTEJA (NOT IN) no SELECT (SELECT campo FROM tabela_b)
é isso, qualquer dúvida poste...abços
SELECT SUM(campo_b) FROM tabela_a
WHERE campo_a NOT IN (SELECT campo FROM tabela_b)
Explicando:
SELECT SUM(campo_b) FROM tabela_a
Soma os valores do cambo_b na tabela_a
WHERE campo_a NOT IN (SELECT campo FROM tabela_b)
Pega todos os registros em que o campo_a NÃO ESTEJA (NOT IN) no SELECT (SELECT campo FROM tabela_b)
é isso, qualquer dúvida poste...abços
Tópico encerrado , respostas não são mais permitidas