Fórum Firebird Consulta #59048
01/11/2007
0
2 minutos:
A função dela é a seguinte:
Selecionar todos os clientes no intervalo especifico, e verificar se é a primeira vez que o cliente esta pagando, ou seja, se tem algum lançamento do cliente anterior a data de lançamento do registro atual.
Se alguem puder me ajudar.
Abraços.
SELECT
cx_datamov,
cx.CX_CLIENTE,
cx.CX_COBRADOR,
CLI_NOME,
COB_NOME,
(SELECT count(VCX_CLIENTE) FROM VCX_TOTAL
WHERE (VCX_DATAMOV < CX_DATAMOV) AND (VCX_CLIENTE=CX_CLIENTE)
)AS ULTIMO
FROM
CX
LEFT JOIN CLI ON CLI_CODIGO=CX_CLIENTE
LEFT JOIN COB ON COB_CODIGO=CX_COBRADOR
WHERE
(not CLI_CODIGO is null) and
(CX_DATAMOV >= :P1) AND
(CX_DATAMOV <= :P2)
Tabelas:
CREATE TABLE CX (
CX_CODIGO INTEGER NOT NULL,
CX_DATAMOV DATE,
CX_VALORMOV DM_CURRENCY,
CX_CLIENTE VARCHAR(9) CHARACTER SET WIN1252 COLLATE WIN_PTBR,
CX_COBRADOR VARCHAR(2) CHARACTER SET WIN1252 COLLATE WIN_PTBR,
CX_USUARIO VARCHAR(20) CHARACTER SET WIN1252 COLLATE WIN_PTBR,
);
Visões:
CREATE VIEW VCX_TOTAL(
VCX_CODIGO,
VCX_DATAMOV,
VCX_CLIENTE)
AS
SELECT
CX_CODIGO,
CX_DATAMOV,
CX_CLIENTE
FROM CX
;
Germano
Curtir tópico
+ 0Posts
02/11/2007
Sremulador
Gostei + 0
03/11/2007
Sql.pedrojr
SELECT ...,
(SELECT count(VCX_CLIENTE) FROM CX AS CX2
WHERE (CX2.CX_DATAMOV < CX_DATAMOV) AND
(CX2.CX_CLIENTE = CX_CLIENTE) )AS ULTIMO
FROM ...
Gostei + 0
03/11/2007
Sql.pedrojr
no lugar de count(VCX_CLIENTE) é count(CX2.CX_CLIENTE)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)