[RESOLVIDO] Select não funciona - não encontrei o erro

Olá pessoal, não encontrei meu erro, alguém com outra visão pode me ajudar? Valew!

SELECT
   (sum(d.total) , sum(m.credito))
FROM
   oslojadetalhe d INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
   INNER JOIN clifor c ON m.id_cliente = c.REGISTRO
   INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO
WHERE 
   (c.CLIFOR = '3') AND
   (d.data_os = '2016-11-07') AND
   (d.status_laboratorio <> '') AND
   (m.forma_pagamento <= '4')

Isso são duas colunas:

sum(d.total) , sum(m.credito)

Ou concatenadas:
CONCAT(sum(d.total) , sum(m.credito)) ?

SUM é uma função de agregação e, portanto, exige o GROUP BY
Abraços

Melhorei o que estou querendo na verdade…

SELECT
sum((d.total) - (m.credito)) AS diferenca
FROM
oslojadetalhe d INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
INNER JOIN clifor c ON m.id_cliente = c.REGISTRO
INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO
WHERE
(c.CLIFOR = ‘3’) AND
(d.data_os = ‘2016-11-07’) AND
(d.status_laboratorio <> ‘’) AND
(m.forma_pagamento <= ‘4’)

Melhorei o que estou querendo na verdade…

SELECT
sum((d.total) - (m.credito)) AS diferenca
FROM
oslojadetalhe d INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
INNER JOIN clifor c ON m.id_cliente = c.REGISTRO
INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO
WHERE
(c.CLIFOR = ‘3’) AND
(d.data_os = ‘2016-11-07’) AND
(d.status_laboratorio <> ‘’) AND
(m.forma_pagamento <= ‘4’)

Continua faltando o group BY
Abraços

Ah. Entendi. OK. Sem group BY

O erro está em m.Id_cliente
Quem é m ?

6ª linha
“oslojamestre m”

Acho que os INNER JOIN estão trocados. Ao invés de:

INNER JOIN clifor c ON m.id_cliente = c.REGISTRO
INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO

Deveria ser:

INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
INNER JOIN oslojamestre m ON m.id_cliente = c.REGISTRO

Fiz um teste via phpmyadmin e o erro foi este…
"
SELECT
sum((d.total) - (m.credito)) AS diferenca
FROM
oslojadetalhe d INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
INNER JOIN clifor c ON m.id_cliente = c.REGISTRO
INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO
WHERE
(c.CLIFOR = ‘3’) AND
(d.data_os = ‘2016-11-07’) AND
(d.status_laboratorio <> ‘’) AND
(m.forma_pagamento <= ‘4’)

#1066 - Tabela/alias ‘c’ não única
"

Joelton vc está fazendo inner join na tabela clifor 2x com o mesmo alias.

Verdade… alterei agora está dando outro erro…
SELECT
sum(d.total - m.credito) AS diferenca
FROM
oslojadetalhe d INNER JOIN clifor c ON d.id_cliente = c.REGISTRO
INNER JOIN clifor cl ON m.id_cliente = cl.REGISTRO
INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO
WHERE
(c.CLIFOR = ‘3’) AND
(cl.CLIFOR = ‘3’) AND
(d.data_os = ‘2016-11-07’) AND
(d.status_laboratorio <> ‘’) AND
(m.forma_pagamento <= ‘4’)

#1054 - Coluna ‘m.id_cliente’ desconhecida em ‘on clause’

O nome do campo está correto? Esse select que vc postou por ultimo ainda continua chamando a tabela clifor 2x.

… e com os INNER JOINs invertidos ainda.

Outro detalhe que encontrei aqui. Em:

INNER JOIN oslojamestre m ON d.id_cliente = c.REGISTRO

Vc esta fazendo o inner join com a tabela oslojamestre e comparando campos das tabelas clifor e oslojadetalhe? Ta errado aqui tambem.