Qual a relação entre as tabelas cliente (dados padrões) e servico(id, valor)?
Ex: existe uma pk_id cliente referenciada na servico?
E a tabela orcamento qua a sua função no seu calculo?
Qual a relação entre as tabelas cliente (dados padrões) e servico(id, valor)?
Ex: existe uma pk_id cliente referenciada na servico?
E a tabela orcamento qua a sua função no seu calculo?
bom na tabela cliente existe apenas um primary key id na servico tb so existe uma primary key id
ja no orçamento existe uma fk_id_cliente e uma FK_id_servico.
a minha ideia era a seguinte:
os serviços jé estarão cadastrados com seus valores.
o cliente necessita de um cadastro.
no orçamento ele lê o cliente e seus dados e também lê os serviços e valores assim fazendo amarração no orçamento os valores do que se deseja e os dados do cliente.
queria somar esses valores do cliente.
ex:
orçamento 1
cliente 1 pede servico de concertar carro 50,00
cliente 1 pede servico de concertar cano 40,00
orçamento valor 90 reais ( soma dos produtos no orçamento 1)
alguem poderia me ajudar? alguem ? kk tenso ^^ para mais informações
fiz este codigo para verificar os orçamentos com todas as informações que quero, nao sei se ajuda em me ajudarem mas a ideia era colocar algo ae que somasse esse S.VALOR ele é uma FK da tabela servicos onde se encontram os valores dos servicos.
SELECT O.ID,O.DATA_EMISSAO, C.NOME,C.RG_IE,C.CPF_CNPJ,C.BAIRRO,C.COMPLEMENTO,C.CIDADE,C.ESTADO,C.CEP,C.TELEFONE,C.CELULAR,C.EMAIL,O.OBSERVACAO,S.NOME,S.VALOR
FROM ORCAMENTO O
INNER JOIN CAD_CLIENTE C ON (O.ID_CLIENTE = C.ID)
INNER JOIN SERVICOS S ON (O.ID_SERVICO = S.ID)
raiduarte,
se tens uma fk do cliente na serviço e ela realmente referencia, deve funcionar.
posdes ate fazer mais simples para teste:
SELECT C.*, O.*
FROM ORCAMENTO O , CLIENTE C
WHERE O.FK_ID_CLIENTE=1
--ou -- WHERE C.ID=1 AND O.FK_ID_CLIENTE=1
É obvio que não usaras está notação!!!
com um join funcionara se usares a pk e a fk
ou mesmo com um LEFT JOIN
lembre se de usar o WHERE
SELECT CLIENTE.NOME, ORCAMENTO.ID, SUM (SERVICO.VALOR)
FROM CLIENTE INNER JOIN ORCAMENTO ON (CLIENTE.ID = ORCAMENTO.FK_ID_CLIENTE
INNER JOIN SERVICO ON (SERVICO.ID = ORCAMENTO.FK_ID_SERVICO)
WHERE (CLIENTE.NOME LIKE '%')
GROUP BY CLIENTE.ID;
O que eu tentei aqui foi somar os valores de serviços, juntar as tabelas com o INNER JOIN, fornecer uma cláusula WHERE onde numa aplicação futura você possa pesquisar o cliente pelo nome (ou por parte do nome) e agrupar os serviços de acordo com o cliente.
Como no INNER JOIN deve ter ocorrido o filtro e eliminação das tuplas desnecessárias, o código que eu te passei deve estar com a lógica certa, mas não com os atributos corretos.
SELECT CLIENTE.NOME, ORCAMENTO.ID, SUM (SERVICO.VALOR)
FROM CLIENTE INNER JOIN ORCAMENTO ON (CLIENTE.ID = ORCAMENTO.FK_ID_CLIENTE
INNER JOIN SERVICO ON (SERVICO.ID = ORCAMENTO.FK_ID_SERVICO)
WHERE (CLIENTE.NOME LIKE '%')
GROUP BY CLIENTE.ID;
O que eu tentei aqui foi somar os valores de serviços, juntar as tabelas com o INNER JOIN, fornecer uma cláusula WHERE onde numa aplicação futura você possa pesquisar o cliente pelo nome (ou por parte do nome) e agrupar os serviços de acordo com o cliente.
Como no INNER JOIN deve ter ocorrido o filtro e eliminação das tuplas desnecessárias, o código que eu te passei deve estar com a lógica certa, mas não com os atributos corretos.
Abraço![/quote]
obrigado amigo eu consegui aki fiz algumas alterações obviamente e funcionou como eu precisava obrigado a ajuda
[quote=gilsonk]raiduarte,
se tens uma fk do cliente na serviço e ela realmente referencia, deve funcionar.
posdes ate fazer mais simples para teste:
SELECT C.*, O.*
FROM ORCAMENTO O , CLIENTE C
WHERE O.FK_ID_CLIENTE=1
--ou -- WHERE C.ID=1 AND O.FK_ID_CLIENTE=1
É obvio que não usaras está notação!!!
com um join funcionara se usares a pk e a fk
ou mesmo com um LEFT JOIN
lembre se de usar o WHERE
[/quote]
Obrigado pela ajuda fiz algumas alterações e conseguir resolver o problema aki