Ayuda con QUERY SQL

tetsu Seguir

Gamma
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Feb 2010
Mensajes
384
Buenas tardes chicos.
Quería ver si me pueden apoyar, verán estoy intentando hacer un Query de la siguiente forma:

SQL:
SELECT d.NOFACTURA, CAST(d1.FECHAFACTURA AS DATE) AS FECHAFACTURA, d.CLAVEPROD, d.SUBTOTAL, ISNULL(d5.CANTIDAD,0) AS IMPUESTO, d.TC, d.CLAVEMONEDA, d3.LINEA, d2.DESCRIPCION
FROM
    dbo.FACPARTIDAS d
    INNER JOIN dbo.FACTURAS d1 ON (d.NOFACTURA=d1.NOFACTURA)
    INNER JOIN dbo.PRODUCTOS d4 ON (d.CLAVEPROD=d4.CLAVEPROD)
    INNER JOIN dbo.LINEAS d3 ON (d4.CLAVELINEA=d3.CLAVELINEA)
    INNER JOIN dbo.TFAMILIAS d2 ON (d4.FAMILIA=d2.CLAVE)
    LEFT OUTER JOIN dbo.FACIMPUESTOSP d5 ON (d1.NOFACTURA=d5.NOFACTURA)
    WHERE (d.NOFACTURA LIKE '%A-%' OR d.NOFACTURA LIKE '%E-%'
    OR d.NOFACTURA LIKE '%T-%' OR d.NOFACTURA LIKE '%REM-%') AND D1.ESTATUS<>'CANCELADA'
    ORDER BY D.NOFACTURA ASC


Y me arroja el siguiente resultado, el detalle es que me está repitiendo el mismo valor hasta 7 veces, dependiendo de cuántas partidas tenga la factura, y solo debería mostrarme un registro diferente por partida en el caso de NOFACTURA A-1006 y NOFACTURA A-1007

NOFACTURAFECHAFACTURACLAVEPRODSUBTOTALIMPUESTOTCCLAVEMONEDALINEADESCRIPCION
A-10
12/07/2019​
BLS-02836
60237.6​
9638.02​
1​
MNBOLSA IMPRESA BDBOLSA IMPRESA
A-100
18/07/2019​
BLS-31760
92700​
14832​
1​
MNBOLSA IMPRESA BDBOLSA IMPRESA
A-1001
03/10/2019​
FIL-03019
910​
145.6​
19.7985​
USDROLLO REFILADO IMPRESO ADREFILADO IMPRESO
A-1003
03/10/2019​
BLS-50889
6775.5​
1084.08​
1​
MNBOLSA IMPRESA BDBOLSA IMPRESA
A-1004
03/10/2019​
BLS-50969
47250​
7560​
1​
MNBOLSA IMPRESA BDBOLSA IMPRESA
A-1005
03/10/2019​
PLA-00076
132.72​
21.24​
19.7985​
USD<Sin linea>INSUMO
A-1006
03/10/2019​
BLSK-03217
8952.8​
1432.45​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-03217
8952.8​
15206.4​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-03217
8952.8​
18744​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31809
95040​
1432.45​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31809
95040​
15206.4​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31809
95040​
18744​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31811
117150​
1432.45​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31811
117150​
15206.4​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1006
03/10/2019​
BLSK-31811
117150​
18744​
1​
MNBOLSA IMPRESA ADBOLSA IMPRESA
A-1007
03/10/2019​
BLS-00077
2172.48​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-00077
2172.48​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03334
1060.2​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03335
2241​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03341
281​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03344
896.6​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03347
2700.8​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
44.96​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
112.55​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
143.46​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
169.63​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
347.6​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
358.56​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO
A-1007
03/10/2019​
BLS-03350
703.44​
432.13​
1​
MNROLLO ALTA DENSIDADBOLSA ROLLO

¿Alguna Idea de qué esté haciendo mal?
De antemano muchas gracias.
Saludos.
 

miguel2008

Delta
Verificación en dos pasos activada
Desde
30 Ago 2014
Mensajes
699
Así es complicado verlo,
para esos que se repiten estás haciendo un producto cartesiano, alguna de las tablas tiene alguna primary key que te falta añadir a los filtros, o bien en los inner o bien la where...

Puedes intentar utilizar un distinct en la select principal y si son todos los valores iguales pues no debería mostrarse, aunque lo correcto sería encontrar la primary key o foreign key que no estás utilizando en la query y por eso te duplica resultados.
 

Programarte

Dseda
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
18 Nov 2014
Mensajes
1.092
¿No está múltiples veces en la tabla las que se repiten con diferentes datos? lo pregunto porque un mismo número de factura tiene diferentes valores en impuesto, entonces ¿cómo debería salir solo 1 resultado?
 

tetsu

Gamma
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Feb 2010
Mensajes
384
Que onda, disculpen a todos la demora, dejé abierta la sesión en mi celular y se me olvidaba entrar.

Así es complicado verlo,
para esos que se repiten estás haciendo un producto cartesiano, alguna de las tablas tiene alguna primary key que te falta añadir a los filtros, o bien en los inner o bien la where...

Puedes intentar utilizar un distinct en la select principal y si son todos los valores iguales pues no debería mostrarse, aunque lo correcto sería encontrar la primary key o foreign key que no estás utilizando en la query y por eso te duplica resultados.

Sí lo revisé también esta cuestión y aún así tampoco anda jajaa.

¿No está múltiples veces en la tabla las que se repiten con diferentes datos? lo pregunto porque un mismo número de factura tiene diferentes valores en impuesto, entonces ¿cómo debería salir solo 1 resultado?
Apenas estaba viendo eso también, y al parecer me está tomando mal los valores deberé revisar esa parte.

esto te puede servir https://www.w3schools.com/sql/sql_distinct.asp
o algo como
AND dbo.LINEAS.nro_linea = 1 ( si es que las lineas tienen un número relativo dentro de la factura )
Sí use del mismo modo el DISTINCT, y aún así no quiere jajaja

Muchas gracias a todos.
Volveré a generarlo, esta ves revisando parte a parte y viendo dónde es donde da el problema.
De antemano gracias.
Saludos.
 

tetsu

Gamma
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Feb 2010
Mensajes
384
Al final pude resolverlo, verán lo que hice fue una vista con esta información:
SQL:
SELECT
    d.NOFACTURA AS FACTURA, d.PARTIDA, d.TC AS TIPOCAMBIO, d.CLAVEPROD AS PRODUCTO, (d.CANTIDAD*d1.FACTOR) AS TOTALKG,  d.SUBTOTAL, CAST(D2.FECHAFACTURA AS DATE)AS FECHA, d2.ESTATUS, d2.MONEDA, d3.DESCRIPCION AS FAMILIA, d4.LINEA
    FROM
    dbo.FACPARTIDAS d
    INNER JOIN dbo.PRODUCTOS d1 ON (d.CLAVEPROD=d1.CLAVEPROD)
    INNER JOIN dbo.FACTURAS d2 ON (d.NOFACTURA=d2.NOFACTURA)
    INNER JOIN dbo.TFAMILIAS d3 ON (d1.FAMILIA=d3.CLAVE)
    INNER JOIN dbo.LINEAS d4 ON (d1.CLAVELINEA=d4.CLAVELINEA)
    WHERE (d.NOFACTURA NOT LIKE '%REMB-%') AND ESTATUS<>'CANCELADA'
    ORDER BY D.NOFACTURA,D2.MONEDA,D4.LINEA ASC

Y posteriormente hice una relación con la tabla de Impuestos quedando así:

SQL:
    SELECT d.FACTURA, d.PARTIDA, d.TIPOCAMBIO, d.PRODUCTO, d.TOTALKG, d.SUBTOTAL, d.FECHA, d.ESTATUS, d.MONEDA, d.FAMILIA, d.LINEA, SUM(SUBTOTAL+ISNULL(d1.CANTIDAD,0))AS TOTALPARTIDA
    FROM
    dbo.QRVENTASFAM2 d
    LEFT JOIN dbo.FACIMPUESTOSP d1 ON (d.FACTURA=d1.NOFACTURA) AND (d.PARTIDA=d1.PARTIDA)   
    WHERE FECHA BETWEEN '2019-07-01' AND '2019-12-31' 
    GROUP BY d.FACTURA, d.PARTIDA, d.TIPOCAMBIO, d.PRODUCTO, d.TOTALKG, d.SUBTOTAL, d.FECHA, d.ESTATUS, d.MONEDA, d.FAMILIA, d.LINEA

Y ahora sí me dio el resultado como lo buscaba:

FACTURAPARTIDATIPOCAMBIOPRODUCTOTOTALKGSUBTOTALFECHAESTATUSMONEDAFAMILIALINEATOTALPARTIDA
A-1760
1​
1​
BLS-01785
275​
7704.73​
02/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
8937.49​
A-1760
2​
1​
BLS-50978
225​
6401.43​
02/12/2019​
EntregadaMNBOLSA IMPRESABOLSA DE CAMISETA AD
7425.66​
A-1761
1​
1​
BLSK-02502
300.1316​
24633​
02/12/2019​
EntregadaMNBOLSA IMPRESABOLSA IMPRESA BD
28574.28​
A-1762
1​
1​
FIL-03323
529.45​
32217.03​
02/12/2019​
EntregadaMNREFILADO IMPRESOROLLO REFILADO IMPRESO BD
37371.75​
A-1763
1​
1​
FIL-03323
342.6​
20847.21​
02/12/2019​
EntregadaMNREFILADO IMPRESOROLLO REFILADO IMPRESO BD
24182.76​
A-1764
1​
1​
BLS-00010
250​
8835​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
10248.6​
A-1764
2​
1​
BLS-02125
250​
7972.5​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
9248.1​
A-1764
3​
1​
BLS-02163
125​
3986.25​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
4624.05​
A-1764
4​
1​
BLS-02186
250​
7972.5​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
9248.1​
A-1764
5​
1​
BLS-02193
250​
7972.5​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
9248.1​
A-1764
6​
1​
BLS-02209
125​
3986.25​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
4624.05​
A-1764
7​
1​
BLS-02217
125​
3986.25​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
4624.05​
A-1764
8​
1​
BLS-02136
125​
3986.25​
03/12/2019​
EntregadaMNBOLSA PLANABOLSA NATURAL
4624.05​

Y ya por último hice una sumatoria de como lo necesitaba y funcionó jajajaja.
Mucho desmadre pero al final quedó :)
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba