[SP-pm] Problema para pegar o registro anterior de uma tabela
Lucas Moraes
lucastiagodemoraes at gmail.com
Thu Sep 8 05:24:07 PDT 2011
Gente tenho 3 tabelas "peca", "operacao" e "apontamento":
CREATE TABLE peca (
pec_id SERIAL,
pec_cli_id INT NOT NULL,
pec_codigo VARCHAR(30) NOT NULL,
pec_denominacao VARCHAR(60) NULL,
PRIMARY KEY(pec_id)
);
CREATE TABLE operacao (
ope_id SERIAL,
ope_pec_id INT NOT NULL,
ope_maq_id INT NOT NULL,
ope_numero VARCHAR(3) NOT NULL,
ope_descricao VARCHAR(80) NOT NULL,
ope_denominacao VARCHAR(100) NOT NULL,
PRIMARY KEY(ope_id)
);
CREATE TABLE apontamento (
apo_id SERIAL,
apo_ser_id INT NOT NULL,
apo_fun_id INT NOT NULL,
apo_ope_id INT NOT NULL,
apo_uni_id INT NOT NULL,
apo_oco_id INT NOT NULL,
apo_quantidade INT NULL,
apo_refugada INT NULL,
apo_data_inicial DATE NOT NULL,
apo_data_final DATE NULL,
apo_hora_inicial TIME NOT NULL,
apo_hora_final TIME NULL,
apo_status INT NOT NULL,
apo_obs TEXT NULL,
PRIMARY KEY(apo_id)
);
Relacionamentos
tabela peca has_many operacao
tebela operacao has_many apontamento
a tabela peca contem o id do cliente e dados da peça
a tabela operacao contem as operacoes para fabricar a peca e cada operacao
contem um numero, normalmente: operacao 1: 10, operacao 2: 20, operacao 3:
35
a quantidade de operacao varia de peça para peça e os numeros tambem varia
de peça para peça.
a tabela apontamento é como se fosse um relatório de produção de cada
funcionario com data inicial e final, hora inicial e final e quantidade que
produziu.
agora eu vou explicar o que eu quero, cada operacao depende da operacao
anterior para produzir, então eu gostaria de pegar pegar a quantidade
produzida da operacao anterior para colocar de saldo na operacao que vai ser
iniciada. Com ajuda no irc eu cheguei a esse código:
return $valor->resultset('Operacao')->search(
{
ope_numero => {'<' => $numero},
'apontamento.apo_ser_id' => $id
},
{
join => 'apontamento',
rows => 1,
group_by => 'ope_numero',
}
)->get_column('apontamento.apo_refugada')->sum;
esse código acima funciona em partes, só funciona quando só tem uma operação
anterior, quando tem mais de 2 operacao anterior, ele esta retornando a que
é verdadeira.
espero que tenham entendido.
Obrigado.
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110908/623e2a0e/attachment.html>
More information about the SaoPaulo-pm
mailing list