Jump to content

Recommended Posts

Posted

Olá,

DECLARE @CONTAS TABLE (
TIPO VARCHAR(100),
VALOR int
)
INSERT INTO @CONTAS VALUES
('alf',1),
('acc',5),
('acc aa',55)
select * from @CONTAS where tipo = SUBSTRING(tipo,1,3)

usando assim substring com a clausula where como é k eu consigo que ele me devolva o 3 registo, e não apenas?

Posted

Não percebi o que pretendes.

Estás a ler os registos cujo campo tipo seja igual aos primeiros 3 caracteres do tipo, o que apenas coincide com os 2 primeiros registos.

O terceiro registo ficará algo como 'acc aa' = 'acc', o que é falso.

Se queres os 3 registos, porque usas o where?

Posted

Ainda ando a procura de uma solução pra poder colocar tudo na mesma linha.. Ando em teste...

entretanto usei o replace..

vou colocar aqui a minha ideia

SELECT REPLACE(C.TIPO,'aa',''),
INVESTIMENTOS = SUM(CASE WHEN C.TIPO like '%aa' THEN C.VALOR END),
OUTROS = SUM(CASE WHEN not C.TIPO like '%aa%' THEN C.VALOR END)
FROM @CONTAS AS C
where REPLACE(C.TIPO,'aa','')=SUBSTRING(tipo,0,4)
GROUP BY C.TIPO

porque a minha ideia é que 'acc' e 'acc aa' fosse a mesma coisa...

Posted

jafm tens de explicar melhor. Pretendes de uma tabela com os seguintes dados:

Cliente Ano Quantidade
1 2012 10
1 2013 5

Ter um select que faça aparecer os dados assim?

Cliente Ano QuantidadeAnoAtual QuantidadeAnoAnterior
1 2013 5 10

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.