Ajuda com Inner Join em SQL por favor

Realize uma consulta que retorne os campos CPFCNPJ, NOME da tabela PESSOA, e o campo VALOR da tabela MOVIMENTOS, desde que seja o maior valor, que a conta seja do tipo poupança (INDPOUPANCA = S) e que a pessoa seja cliente (INDCLIENTEBANCO = ‘S’)

Aqui estão as tabelas:

CREATE TABLE PESSOAS(
	CODPESSOA VARCHAR(3) NOT NULL,
	CPFCNPJ VARCHAR(14) NOT NULL,
	NOME VARCHAR(100) NOT NULL,
	DATANASCIMENTO DATETIME NOT NULL,
	TIPOPESSOA CHAR(1) NOT NULL,
	NUMEROFILHOS INT NOT NULL,
	INDCLIENTEBANCO CHAR(1) NOT NULL,
	TIPOLOGRADOURO VARCHAR(3) NULL,
	BAIRRO VARCHAR(5) NULL,
	CIDADE VARCHAR(50) NULL,
	UF CHAR(2) NULL,
	PAIS VARCHAR(50) NULL,
	CEP CHAR(8) NULL,
)
CREATE TABLE CONTAS(
	CODCOLIGADA VARCHAR(3) NOT NULL,
	CODAGENCIA VARCHAR(5) NOT NULL,
	NROCONTA VARCHAR(7) NOT NULL,
	CODPESSOA VARCHAR(3) NOT NULL,
	INDPOUPANCA CHAR(1) NOT NULL,
	USUARIOINCLUSAO VARCHAR(100),
	DATAINCLUSAO DATETIME,
	USUARIOALTERACAO VARCHAR(100),)
CREATE TABLE MOVIMENTOS(
	CODCOLIGADA VARCHAR(3) NOT NULL,
	CODAGENCIA VARCHAR(5) NOT NULL,
	NROCONTA VARCHAR(7) NOT NULL,
	NROMOVIMENTO INT IDENTITY NOT NULL,
	DATAMOVIMENTO DATETIME NOT NULL,
	VALOR NUMERIC(17,2) NULL,
	MORA NUMERIC(17,2) NULL,
	MULTA NUMERIC(17,2) NULL,
	DESCONTO NUMERIC(17,2) NULL,
	DESCRICAO NUMERIC(17,2) NULL,
)
ALTER TABLE PESSOAS ADD CONSTRAINT VALIDA_TIPOPESSOA CHECK (TIPOPESSOA IN ('F','J'))
ALTER TABLE PESSOAS ADD CONSTRAINT DEF_VALOR DEFAULT(0) FOR NUMEROFILHOS
ALTER TABLE PESSOAS ADD CONSTRAINT PK_PESSOAS PRIMARY KEY (CODPESSOA)
ALTER TABLE CONTAS ADD CONSTRAINT PK_CONTAS PRIMARY KEY (CODCOLIGADA,CODAGENCIA,NROCONTA)
ALTER TABLE CONTAS ADD CONSTRAINT FK_CONTAS_PESSOA FOREIGN KEY (CODPESSOA) REFERENCES PESSOAS (CODPESSOA)
ALTER TABLE CONTAS ADD CONSTRAINT VALIDA_INDPOUPANCA CHECK (INDPOUPANCA IN('S','N'))
ALTER TABLE MOVIMENTOS ADD CONSTRAINT PK_MOVIMENTOS PRIMARY KEY (CODCOLIGADA,CODAGENCIA,NROCONTA)
ALTER TABLE MOVIMENTOS ADD CONSTRAINT FK_CODCOLIGADA_CONTAS FOREIGN KEY (CODCOLIGADA,CODAGENCIA,NROCONTA)

E o que vc ja fez? Qual a sua dificuldade?

Eu fiz assim, mas tá dando erro:

SELECT
	cpfcnpj,
	nome,
	MAX(valor)
FROM
	pessoas
	INNER JOIN contas ON pessoas.codpessoa = contas.codpessoa
	INNER JOIN movimentos ON contas.nroconta + contas.codagencia + contas.codcoligada = movimentos.nroconta + movimentos.codagencia + movimentos.codcoligada
WHERE
	indpoupanca = 'S'
	AND indclientebanco = 'S'
GROUP BY
	cpfcnpj,
	nome,
	MAX(valor)

Não se usa + em SQL para comparação de chaves em uma junção!
Você tem que comparar todas as chaves unicamente, em caso de mais de uma se usa AND.

Exemplo:

SELECT * FROM T1
INNER JOIN T2 ON(T1.CHAVE1 = T2.CHAVE1 AND T1.CHAVE2 = T2.CHAVE2 AND T1.CHAVE3 = T2.CHAVE3)
1 curtida