Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con query (https://www.clubdelphi.com/foros/showthread.php?t=55706)

Paulao 24-04-2008 15:50:50

Ayuda con query
 
Amigos, necesito de una ayuda con esta query. O que yo quiero es, que yo hago una venta con 10 itenes y soloamente una forma de pago, ejemplo, al contado(dinero). O que pasa es que esta query abajo, viene la palavra dinero 10 vezes, o sea, en la misma quantidad de itenes. Yo gustaria de hacer asi. Si la vent fue en solo una forma de pago, entonces, yo listava los diez itenes, pero la forma solamente una vez y despues todo NULL. Hay como hacerlo asi?

Cita:

SELECT
TB_SAC_NF_ITEM.NU_CX,
TB_SAC_NF_ITEM.NU_NF,
TB_SAC_NF_ITEM.SR_NF,
TB_SAC_NF_ITEM.NU_SEQ_ITEM,
TB_SAC_NF_ITEM.CD_PROD,
TB_SAC_NF_ITEM.DESCRICAO ,

TB_SAC_NF_PAGAMENTO.CD_F_PAG,
TB_SAC_NF_PAGAMENTO.VL_PAG,
TB_SAC_FORMA_PAGTO.DESCRICAO "FORMA",

TB_SAC_NF_ITEM.QT_ITEM,
TB_SAC_NF_ITEM.VL_ITEM,
(TB_SAC_NF_ITEM.QT_ITEM*TB_SAC_NF_ITEM.VL_ITEM) AS TOTAL,
CASE TB_SAC_NF_ITEM.ST_CANC
WHEN 0 THEN 'NAO'
WHEN 1 THEN 'SIM'
END ST_CANC
FROM
TB_SAC_NF_CAPEADOR,
TB_SAC_NF_ITEM,
TB_SAC_NF_PAGAMENTO,
TB_SAC_FORMA_PAGTO
WHERE
TB_SAC_NF_ITEM.NU_CX = TB_SAC_NF_CAPEADOR.NU_CX

AND TB_SAC_NF_PAGAMENTO.NU_CX = TB_SAC_NF_CAPEADOR.NU_CX
AND TB_SAC_NF_PAGAMENTO.NU_NF = TB_SAC_NF_CAPEADOR.NU_NF
AND TB_SAC_FORMA_PAGTO.CD_F_PAG = TB_SAC_NF_PAGAMENTO.CD_F_PAG

AND TB_SAC_NF_ITEM.NU_NF = TB_SAC_NF_CAPEADOR.NU_NF
AND TB_SAC_NF_ITEM.SR_NF = TB_SAC_NF_CAPEADOR.SR_NF
AND TB_SAC_NF_CAPEADOR.NU_CX = 1
AND TB_SAC_NF_ITEM.SR_NF = 'D2'
AND TB_SAC_NF_CAPEADOR.NU_NF = 1378
ORDER BY
TB_SAC_NF_ITEM.NU_NF,
TB_SAC_NF_ITEM.NU_SEQ_ITEM

BlueSteel 24-04-2008 15:59:50

Mira como cambia el formato utilizando la etiqueta adecuada...

Código SQL [-]
SELECT   TB_SAC_NF_ITEM.NU_CX,
         TB_SAC_NF_ITEM.NU_NF,
         TB_SAC_NF_ITEM.SR_NF,
         TB_SAC_NF_ITEM.NU_SEQ_ITEM,
         TB_SAC_NF_ITEM.CD_PROD,
         TB_SAC_NF_ITEM.DESCRICAO,
         TB_SAC_NF_PAGAMENTO.CD_F_PAG,
         TB_SAC_NF_PAGAMENTO.VL_PAG,
         TB_SAC_FORMA_PAGTO.DESCRICAO "FORMA",
         TB_SAC_NF_ITEM.QT_ITEM,
         TB_SAC_NF_ITEM.VL_ITEM,
         (TB_SAC_NF_ITEM.QT_ITEM * TB_SAC_NF_ITEM.VL_ITEM) AS TOTAL,
         CASE TB_SAC_NF_ITEM.ST_CANC 
           WHEN 0 THEN 'NAO'
           WHEN 1 THEN 'SIM'
         END ST_CANC
FROM     TB_SAC_NF_CAPEADOR,
         TB_SAC_NF_ITEM,
         TB_SAC_NF_PAGAMENTO,
         TB_SAC_FORMA_PAGTO
WHERE    TB_SAC_NF_ITEM.NU_CX = TB_SAC_NF_CAPEADOR.NU_CX
         AND TB_SAC_NF_PAGAMENTO.NU_CX = TB_SAC_NF_CAPEADOR.NU_CX
         AND TB_SAC_NF_PAGAMENTO.NU_NF = TB_SAC_NF_CAPEADOR.NU_NF
         AND TB_SAC_FORMA_PAGTO.CD_F_PAG = TB_SAC_NF_PAGAMENTO.CD_F_PAG
         AND TB_SAC_NF_ITEM.NU_NF = TB_SAC_NF_CAPEADOR.NU_NF
         AND TB_SAC_NF_ITEM.SR_NF = TB_SAC_NF_CAPEADOR.SR_NF
         AND TB_SAC_NF_CAPEADOR.NU_CX = 1
         AND TB_SAC_NF_ITEM.SR_NF = 'D2'
         AND TB_SAC_NF_CAPEADOR.NU_NF = 1378
ORDER BY TB_SAC_NF_ITEM.NU_NF,
         TB_SAC_NF_ITEM.NU_SEQ_ITEM

Salu2:p:D

Ahroa, ver que podemos hacer

MaMu 24-04-2008 17:20:22

Paulao, no me queda muy claro lo que quieres hacer, pero si tenes un campo que idéntico en todos los items y no lo quieres repetir, entonces usa DISTINCT. Si lo que quieres es no visualizar en el resto, podrias usar un campo calculado en donde, solo se muestre determinado campo si este es el primer registro (o bien filtrado por fecha, o bien por cantidad de registros).

PD: el prefijo TB_ que usas, es por "TaBela?"

Saludos

Paulao 24-04-2008 17:43:08

Mira, Distinct no funciona, ya e intentado. Ejemplo:
Tengo una venta asi.

Total de la venta: $1000,00
Fecha:24/04/2008

Forma de Pago: Tarjeta Visa
Parcelas: 1

Itens de la venta:
2 Pantallones $200,00
1 Sombrero $50,00
1 Saco $500,00
1 Paragua $50,00
2 Blue Jeans $200,00

Esta query viene asi:
2 Pantallones $200,00 Tarjeta Visa
1 Sombrero $50,00 Tarjeta Visa
1 Saco $500,00 Tarjeta Visa
1 Paragua $50,00 Tarjeta Visa
2 Blue Jeans $200,00 Tarjeta Visa

Pero deberia estar asi:
2 Pantallones $200,00 Tarjeta Visa
1 Sombrero $50,00 NULL
1 Saco $500,00 NULL
1 Paragua $50,00 NULL
2 Blue Jeans $200,00 NULL

No lo se fue claro


La franja horaria es GMT +2. Ahora son las 08:44:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi