Fórum SQL Detalhe X Mestre #255728
23/10/2004
0
Olá a todos.
Estou com problemas para montar uma SQL que liste informações de uma ordem de serviço, uso Paradox.
Tenho CadOrdem-> Cad. Ordem de Serviço (Mestre), e CadItem->Cad. de Itens da Ordem de Serviço (Detalhe).
Em CadOrdem temos seu número, data, nome do vendedor e nome do cliente.
Chamaremos de A.(CadOrdem) e B.(CadItem).
Cada registro do CadItem tem entre outros dados um campo data de entrega do produto (cada item é entregue em datas diferentes).
Consegui listar todos os itens de cada ordem de serviço ordenados pelo numero da Ordem. Mas preciso listar todos os itens ordenados por data de entrega e não estou conseguindo. A lista sai ordenada por data mas sem o nome do cliente e nome do vendedor que estão no CadOrdem,
** Com o código abaixo a lista sai ordenada por ordem de serviço
mas preciso listar por data de entrega que fica em CadItem (Detalhe),
e tenho que mostrar o nome do cliente e vendedor a cada item listado.
Dtm.QryPfa.Active := true;
Dtm.QryPfa.Close;
Dtm.QryPfa.Sql.Clear;
Dtm.QryPfa.Sql.Add(´Select * From CadOrdem A´);
Dtm.QryPfa.Sql.Add(´Where (A.Pfg_Cod >= :CodI)´);
Dtm.QryPfa.Sql.Add(´And (A.Pfg_Cod <= :CodF)´);
Dtm.QryPfa.Parambyname(´CodI´).AsString := FrR1200.EdtPfaIni.Text;
Dtm.QryPfa.Parambyname(´CodF´).AsString := FrR1200.EdtPfaFim.Text;
Dtm.QryPfa.Open;
Dtm.QryPfa_Det.Active := True;
Dtm.QryPfa_Det.Close;
Dtm.QryPfa_Det.Sql.Clear;
Dtm.QryPfa_Det.Sql.Add(´Select * From CadItem B´);
Dtm.QryPfa_Det.Sql.Add(´Where B.Pfg_Cod = :Pfg_Cod´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfd_DataEntrega >= :DataI)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfd_DataEntrega <= :DataF)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfg_Cod >= :CodI)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfg_Cod <= :CodF) Order By B.Pfd_DataEntrega´);
Dtm.QryPfa_Det.Parambyname(´DataI´).Value := StrToDate(FrR1200.EdtDtIni.Text);
Dtm.QryPfa_Det.Parambyname(´DataF´).Value := StrToDate(FrR1200.EdtDtFim.Text);
Dtm.QryPfa_Det.Parambyname(´CodI´).AsString := FrR1200.EdtPfaIni.Text;
Dtm.QryPfa_Det.Parambyname(´CodF´).AsString := FrR1200.EdtPfaFim.Text;
DtmDados.QryPfa_Det.Open;
Muito Obrigado
Neto
Estou com problemas para montar uma SQL que liste informações de uma ordem de serviço, uso Paradox.
Tenho CadOrdem-> Cad. Ordem de Serviço (Mestre), e CadItem->Cad. de Itens da Ordem de Serviço (Detalhe).
Em CadOrdem temos seu número, data, nome do vendedor e nome do cliente.
Chamaremos de A.(CadOrdem) e B.(CadItem).
Cada registro do CadItem tem entre outros dados um campo data de entrega do produto (cada item é entregue em datas diferentes).
Consegui listar todos os itens de cada ordem de serviço ordenados pelo numero da Ordem. Mas preciso listar todos os itens ordenados por data de entrega e não estou conseguindo. A lista sai ordenada por data mas sem o nome do cliente e nome do vendedor que estão no CadOrdem,
** Com o código abaixo a lista sai ordenada por ordem de serviço
mas preciso listar por data de entrega que fica em CadItem (Detalhe),
e tenho que mostrar o nome do cliente e vendedor a cada item listado.
Dtm.QryPfa.Active := true;
Dtm.QryPfa.Close;
Dtm.QryPfa.Sql.Clear;
Dtm.QryPfa.Sql.Add(´Select * From CadOrdem A´);
Dtm.QryPfa.Sql.Add(´Where (A.Pfg_Cod >= :CodI)´);
Dtm.QryPfa.Sql.Add(´And (A.Pfg_Cod <= :CodF)´);
Dtm.QryPfa.Parambyname(´CodI´).AsString := FrR1200.EdtPfaIni.Text;
Dtm.QryPfa.Parambyname(´CodF´).AsString := FrR1200.EdtPfaFim.Text;
Dtm.QryPfa.Open;
Dtm.QryPfa_Det.Active := True;
Dtm.QryPfa_Det.Close;
Dtm.QryPfa_Det.Sql.Clear;
Dtm.QryPfa_Det.Sql.Add(´Select * From CadItem B´);
Dtm.QryPfa_Det.Sql.Add(´Where B.Pfg_Cod = :Pfg_Cod´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfd_DataEntrega >= :DataI)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfd_DataEntrega <= :DataF)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfg_Cod >= :CodI)´);
Dtm.QryPfa_Det.Sql.Add(´And (B.Pfg_Cod <= :CodF) Order By B.Pfd_DataEntrega´);
Dtm.QryPfa_Det.Parambyname(´DataI´).Value := StrToDate(FrR1200.EdtDtIni.Text);
Dtm.QryPfa_Det.Parambyname(´DataF´).Value := StrToDate(FrR1200.EdtDtFim.Text);
Dtm.QryPfa_Det.Parambyname(´CodI´).AsString := FrR1200.EdtPfaIni.Text;
Dtm.QryPfa_Det.Parambyname(´CodF´).AsString := FrR1200.EdtPfaFim.Text;
DtmDados.QryPfa_Det.Open;
Muito Obrigado
Neto
Neto
Curtir tópico
+ 0
Responder
Posts
24/10/2004
Edilcimar
que tal colocar antes do open
order by nome do campodesejado
order by nome do campodesejado
Responder
Gostei + 0
25/10/2004
Neto
Já coloquei order by, na tabela detalhe mas roda ordenado pelo numero.
Neto
Neto
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)