Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que esta es una versión mas simple y por lo tanto mas "entendible"
  1. Se recorren los registros agrupados por albaran, fecha y articulo.
  2. Dentro de cada registro que se devuelve, se realizan dos subselect que suma de esa misma tabla los registros que correspondan con ese alabran, fecha y articulo.
  3. Un subselect filtra los que el precio son iguales a 0.
  4. El otro subselect filtra los que el precio son distintos de 0.
  5. A cada uno de estas sumas se les asinga un nombre (cant_pr y cant_sin).
  6. Opcionalmente se podría ordenar, pero el group by ya lo hace...

Código SQL [-]
select
       /* Campos agrupados */
       v.albaran, v.fecha, v.articulo,
       /* Suma cantidades con precio 0 dentro del albaran-fecha-articulo */
       (select sum(cantidad)
        from ventaslineas
        where
        albaran = v.albaran and
        fecha = v.fecha and
        articulo = v.articulo and
        precio <> 0) as cant_pr,
       /* Suma cantidades con precio distinto de 0 dentro del albaran-fecha-articulo */
       (select sum(cantidad)
        from ventaslineas
        where
        albaran = v.albaran and
        fecha = v.fecha and
        articulo = v.articulo and
        precio = 0) as cant_sin
from ventaslineas v
group by v.albaran, v.fecha, v.articulo
Responder Con Cita
  #2  
Antiguo 16-05-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
Creo que esta es una versión mas simple y por lo tanto mas "entendible"
  1. Se recorren los registros agrupados por albaran, fecha y articulo.
  2. Dentro de cada registro que se devuelve, se realizan dos subselect que suma de esa misma tabla los registros que correspondan con ese alabran, fecha y articulo.
  3. Un subselect filtra los que el precio son iguales a 0.
  4. El otro subselect filtra los que el precio son distintos de 0.
  5. A cada uno de estas sumas se les asinga un nombre (cant_pr y cant_sin).
  6. Opcionalmente se podría ordenar, pero el group by ya lo hace...
Código SQL [-]select /* Campos agrupados */ v.albaran, v.fecha, v.articulo, /* Suma cantidades con precio 0 dentro del albaran-fecha-articulo */ (select sum(cantidad) from ventaslineas where albaran = v.albaran and fecha = v.fecha and articulo = v.articulo and precio <> 0) as cant_pr, /* Suma cantidades con precio distinto de 0 dentro del albaran-fecha-articulo */ (select sum(cantidad) from ventaslineas where albaran = v.albaran and fecha = v.fecha and articulo = v.articulo and precio = 0) as cant_sin from ventaslineas v group by v.albaran, v.fecha, v.articulo
Gracias compañero.

Saludos
__________________
Be water my friend.
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
Consulta update desde una consulta select jafera SQL 3 08-05-2015 19:56:02
Consulta SQL basada en otra consulta anterior jafera SQL 5 19-11-2013 01:07:37
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 14:19:21.


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