Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2012
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Duda sobre suma

Por ejemplo tengo 2 tablas (Tabla1 y Tabla2) la Tabla1 esta enlazada con la Tabla2

Tabla1.ID1
Tabla1.TipDoc

Tabla2.ID2
Tabla2.Cant
Tabla2.Item

Código SQL [-]
select T1.TipDoc, 
         count(T1.TipDoc) as Movimientos,
         sum(T2.Cant) as Cant,
         T2.Item

from Tabla1.T1, Tabla2.T2

where  (T1.ID1 = T2.ID2)

group by (T1.TipDoc
)

Lo que pasa es lo siguiente solo tengo 2 movimientos en la Tabla1, en la clausula "count(T1.TipDoc) as Movimientos" me deberia devolver el resultado 2 y me devuelve 6.
La Tabla1 tiene dos registros, ahora bien cada registro de la Tabla1 le nacen 3 registros osea a la Tabla2 al hacer la consulta me pone asi.

Tabla1
ID TipDoc
-----------
1 Factura
2 Factura

Tabla 2
ID2 Cant Item
--------------------
1 1 Pollo
2 1 Asado
3 1 Pizza

Al hacer la consulta lo pone asi

TipoDoc Movimientos Cantidad
---------------------------------
Factura 6 3

En movimientos deberia ser 2 y no 6 como soluciono ese problema.
Me duplica los movimientos, sera porque las dos tablas estan unidas.
Responder Con Cita
  #2  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A mi me da el resultado correcto. Y nota que sum(Cant) debe ser 2 y no 3.

// Saludos
Responder Con Cita
  #3  
Antiguo 27-07-2012
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
sum(cant) esta bien

Yo me refiero a count(T1.TipDoc)

Lo expilcare mas sensillo es que a veces no me dejo entender.

Tengo 2 tablas relacionadas la Tabla1 y la Tabla2, ahora bien la Tabla1 tiene 2 registros la Tabla2 tiene 6 registros, debidamente enlazados con la Tabla1

Tabla1
Código SQL [-]
ID1 TipDoc
------------
 1   Factura
 2   Factura


Tabla2
Código SQL [-]
ID1 ID2 Cant    Item
---------------------- 
 1    1   1     Pizza
 1    2   1     Asado
 1    3   1     Milanesa
 2    1   1     Ensalada
 2    2   1     Helado
 2    3   1     Jugo

Ahora bien, al hacer la consulta con las dos tablas deberia darme 2 facturas y no 6 facturas, ese es mi problema. Cuando sumo los datos de la segunda tabla todo sale bien pero cuando sumo los datos de la primera tabla me los duplica y con mas registros me los triplica y cuadruplica. Ahora si fuesen 3 tablas en la consulta siempre calcula bien la ultima tabla pero la primera y la segunda los duplica.

Última edición por RebeccaGL fecha: 27-07-2012 a las 20:58:38.
Responder Con Cita
  #4  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por connor Ver Mensaje
sum(cant) esta bien
No. No está bien. Lo que pasa es que ahora ya cambiaste los datos. Con los nuevos datos, el resultado que obtienes es correcto. Tienes seis registros todos con el mismo TipoDoc, de manera que al agruparlos sigues teniendo seis registros.

// Saludos
Responder Con Cita
  #5  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para que lo veas más claro, has esta consulta:

Código SQL [-]
select *
from Tabla1 T1, Tabla2 T2
where T1.ID1 = T2.ID2

Ahí verás que obtienes seis registros y todos tiene "Factura" como TipoDoc.

// Saludos
Responder Con Cita
  #6  
Antiguo 27-07-2012
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Es que las dos tablas van en la consulta

from Tabla1.T1, Tabla2.T2

Es que lo que deseo es sacar el Total de Facturas
Responder Con Cita
  #7  
Antiguo 27-07-2012
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Osea sumar los datos de la Tabla1 y los datos de la Tabla2

Si hize esa consulta me dan los 6 registros
pero como te dije deseo sacar el total de tipos de documentos = facturas y la suma de la tabla2
Responder Con Cita
  #8  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues eso. Todos tus documentos tienen el mismo tipo y de ese tipo hay seis registros al juntar las tablas.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
duda sobre dll romanuel C++ Builder 5 26-02-2008 20:58:52
Duda sobre DFS enrique_84 Varios 2 08-06-2006 11:53:40
Duda sobre With lucasarts_18 Varios 6 26-08-2005 19:44:08
Duda sobre BDE vs IBX ESA Firebird e Interbase 3 04-03-2004 17:20:07
Duda sobre ADO Omar Alejandro Conexión con bases de datos 7 31-05-2003 19:52:58


La franja horaria es GMT +2. Ahora son las 02:55:04.


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