In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Problemas para diseñar una consulta

SQL databases
Responder
fredy[3]
Mensajes: 9
Registrado: Lun Dic 04, 2006 8:50 pm

Problemas para diseñar una consulta

Mensaje por fredy[3] »

Hola,
Tengo la tí­pica tabla de facturas con nº, cliente, fecha, base, iva, etc y
quiero hacer una consulta que me devuelva los datos de la tabla y un nuevo
campo que sea el importe total de las facturas de ese cliente:
Si ahora tengo :
cliente factura fecha importe
----------------------------------
1 1 1-1-07 100
1 2 1-2-07 150
2 3 1-2-07 10
2 4 2-3-07 15
quiero que la nueva consulta me devuelva
cliente factura fecha importe total
-----------------------------------------------------
1 1 1-1-07 100 250
1 2 1-2-07 150 250
2 3 1-2-07 10 10
2 4 2-3-07 15 25
Lo vengo pensando toda la mañana y no se me ocurre cómo puedo hacerlo
¿alguna sugerencia?
Un saludico,
Fredy
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Problemas para diseñar una consulta

Mensaje por jose.luis »

Hola Fredy,
SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
totalfacturas FROM mitabla WHERE etc...
Saludos,
José Luis Capel
"Fredy" <fredy@aglsl.com> escribió en el mensaje
news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
> Hola,
>
> Tengo la típica tabla de facturas con nº, cliente, fecha, base, iva, etc y
> quiero hacer una consulta que me devuelva los datos de la tabla y un nuevo
> campo que sea el importe total de las facturas de ese cliente:
>
> Si ahora tengo :
>
> cliente factura fecha importe
> ----------------------------------
> 1 1 1-1-07 100
> 1 2 1-2-07 150
> 2 3 1-2-07 10
> 2 4 2-3-07 15
>
> quiero que la nueva consulta me devuelva
>
> cliente factura fecha importe total
> -----------------------------------------------------
> 1 1 1-1-07 100 250
> 1 2 1-2-07 150 250
> 2 3 1-2-07 10 10
> 2 4 2-3-07 15 25
>
>
> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo hacerlo
>
> ¿alguna sugerencia?
>
>
> Un saludico,
>
> Fredy
fredy[3]
Mensajes: 9
Registrado: Lun Dic 04, 2006 8:50 pm

Problemas para diseñar una consulta

Mensaje por fredy[3] »

Hola José Luis,
Precisamente en el WHERE es donde tengo el problema.
Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del cliente
1.
En realidad necesitaria algo así­ como un where pero solo para poder calcular
el valor de totalcolumna.
Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente, pero
entonces sólo me saca una lí­na por cliente, no una lí­nea por facutra.
Creo que tiene que haber una forma de hacerlo, pero cada vez me lí­o más.
Un saludico,
Fredy
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje de
noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Hola Fredy,
>
> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
> totalfacturas FROM mitabla WHERE etc...
>
> Saludos,
> José Luis Capel
>
>
> "Fredy" <fredy@aglsl.com> escribió en el mensaje
> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>> Hola,
>>
>> Tengo la tí­pica tabla de facturas con nº, cliente, fecha, base, iva, etc
>> y quiero hacer una consulta que me devuelva los datos de la tabla y un
>> nuevo campo que sea el importe total de las facturas de ese cliente:
>>
>> Si ahora tengo :
>>
>> cliente factura fecha importe
>> ----------------------------------
>> 1 1 1-1-07 100
>> 1 2 1-2-07 150
>> 2 3 1-2-07 10
>> 2 4 2-3-07 15
>>
>> quiero que la nueva consulta me devuelva
>>
>> cliente factura fecha importe total
>> -----------------------------------------------------
>> 1 1 1-1-07 100 250
>> 1 2 1-2-07 150 250
>> 2 3 1-2-07 10 10
>> 2 4 2-3-07 15 25
>>
>>
>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo hacerlo
>>
>> ¿alguna sugerencia?
>>
>>
>> Un saludico,
>>
>> Fredy
>
>
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Problemas para diseñar una consulta

Mensaje por jose.luis »

Fredy,
No te había leido bien...
Prueba a hacer una union de la tabla facturas consigo mismo. Voy a leer
algo más sobre las uniones.
Saludos,
José Luis Capel
"Fredy" <fredy@aglsl.com> escribió en el mensaje
news:[email=4603fe70@news.xailer.com...]4603fe70@news.xailer.com...[/email]
> Hola José Luis,
>
> Precisamente en el WHERE es donde tengo el problema.
>
> Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del
> cliente 1.
> En realidad necesitaria algo así como un where pero solo para poder
> calcular el valor de totalcolumna.
>
> Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente, pero
> entonces sólo me saca una lína por cliente, no una línea por facutra.
>
> Creo que tiene que haber una forma de hacerlo, pero cada vez me lío más.
>
>
> Un saludico,
> Fredy
>
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje de
> noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Hola Fredy,
>>
>> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
>> totalfacturas FROM mitabla WHERE etc...
>>
>> Saludos,
>> José Luis Capel
>>
>>
>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>>> Hola,
>>>
>>> Tengo la típica tabla de facturas con nº, cliente, fecha, base, iva, etc
>>> y quiero hacer una consulta que me devuelva los datos de la tabla y un
>>> nuevo campo que sea el importe total de las facturas de ese cliente:
>>>
>>> Si ahora tengo :
>>>
>>> cliente factura fecha importe
>>> ----------------------------------
>>> 1 1 1-1-07 100
>>> 1 2 1-2-07 150
>>> 2 3 1-2-07 10
>>> 2 4 2-3-07 15
>>>
>>> quiero que la nueva consulta me devuelva
>>>
>>> cliente factura fecha importe total
>>> -----------------------------------------------------
>>> 1 1 1-1-07 100 250
>>> 1 2 1-2-07 150 250
>>> 2 3 1-2-07 10 10
>>> 2 4 2-3-07 15 25
>>>
>>>
>>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo hacerlo
>>>
>>> ¿alguna sugerencia?
>>>
>>>
>>> Un saludico,
>>>
>>> Fredy
>>
>>
>
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Problemas para diseñar una consulta

Mensaje por jose.luis »

Fredy,
Más sencillo que uniones y otras cosas ;-)
SELECT a.cliente, a.factura, a,fecha, a,bruto, (SELECT SUM(b.bruto) FROM
miTabla B WHERE b.cliente = a.cliente) AS total
FROM mitabla A WHERE etc...
Saludos,
José Luis Capel
"Fredy" <fredy@aglsl.com> escribió en el mensaje
news:[email=4603fe70@news.xailer.com...]4603fe70@news.xailer.com...[/email]
> Hola José Luis,
>
> Precisamente en el WHERE es donde tengo el problema.
>
> Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del
> cliente 1.
> En realidad necesitaria algo así como un where pero solo para poder
> calcular el valor de totalcolumna.
>
> Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente, pero
> entonces sólo me saca una lína por cliente, no una línea por facutra.
>
> Creo que tiene que haber una forma de hacerlo, pero cada vez me lío más.
>
>
> Un saludico,
> Fredy
>
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje de
> noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Hola Fredy,
>>
>> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
>> totalfacturas FROM mitabla WHERE etc...
>>
>> Saludos,
>> José Luis Capel
>>
>>
>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>>> Hola,
>>>
>>> Tengo la típica tabla de facturas con nº, cliente, fecha, base, iva, etc
>>> y quiero hacer una consulta que me devuelva los datos de la tabla y un
>>> nuevo campo que sea el importe total de las facturas de ese cliente:
>>>
>>> Si ahora tengo :
>>>
>>> cliente factura fecha importe
>>> ----------------------------------
>>> 1 1 1-1-07 100
>>> 1 2 1-2-07 150
>>> 2 3 1-2-07 10
>>> 2 4 2-3-07 15
>>>
>>> quiero que la nueva consulta me devuelva
>>>
>>> cliente factura fecha importe total
>>> -----------------------------------------------------
>>> 1 1 1-1-07 100 250
>>> 1 2 1-2-07 150 250
>>> 2 3 1-2-07 10 10
>>> 2 4 2-3-07 15 25
>>>
>>>
>>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo hacerlo
>>>
>>> ¿alguna sugerencia?
>>>
>>>
>>> Un saludico,
>>>
>>> Fredy
>>
>>
>
fredy[3]
Mensajes: 9
Registrado: Lun Dic 04, 2006 8:50 pm

Problemas para diseñar una consulta

Mensaje por fredy[3] »

Ok, creo que por ahí­ van los tiros.
Muchas gracias!!
Un saludico,
Fredy
> Fredy,
>
> Más sencillo que uniones y otras cosas ;-)
>
> SELECT a.cliente, a.factura, a,fecha, a,bruto, (SELECT SUM(b.bruto)
> FROM
> miTabla B WHERE b.cliente = a.cliente) AS total
> FROM mitabla A WHERE etc...
> Saludos,
> José Luis Capel
> "Fredy" <fredy@aglsl.com> escribió en el mensaje
> news:[email=4603fe70@news.xailer.com...]4603fe70@news.xailer.com...[/email]
>
>> Hola José Luis,
>>
>> Precisamente en el WHERE es donde tengo el problema.
>>
>> Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del
>> cliente 1.
>> En realidad necesitaria algo así­ como un where pero solo para poder
>> calcular el valor de totalcolumna.
>> Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente,
>> pero entonces sólo me saca una lí­na por cliente, no una lí­nea por
>> facutra.
>>
>> Creo que tiene que haber una forma de hacerlo, pero cada vez me lí­o
>> más.
>>
>> Un saludico,
>> Fredy
>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el
>> mensaje de noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>
>>> Hola Fredy,
>>>
>>> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
>>> totalfacturas FROM mitabla WHERE etc...
>>>
>>> Saludos,
>>> José Luis Capel
>>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>>> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>>>
>>>> Hola,
>>>>
>>>> Tengo la tí­pica tabla de facturas con nº, cliente, fecha, base,
>>>> iva, etc y quiero hacer una consulta que me devuelva los datos de
>>>> la tabla y un nuevo campo que sea el importe total de las facturas
>>>> de ese cliente:
>>>>
>>>> Si ahora tengo :
>>>>
>>>> cliente factura fecha importe
>>>> ----------------------------------
>>>> 1 1 1-1-07 100
>>>> 1 2 1-2-07 150
>>>> 2 3 1-2-07 10
>>>> 2 4 2-3-07 15
>>>> quiero que la nueva consulta me devuelva
>>>>
>>>> cliente factura fecha importe total
>>>> -----------------------------------------------------
>>>> 1 1 1-1-07 100 250
>>>> 1 2 1-2-07 150 250
>>>> 2 3 1-2-07 10 10
>>>> 2 4 2-3-07 15
>>>> 25
>>>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo
>>>> hacerlo
>>>>
>>>> ¿alguna sugerencia?
>>>>
>>>> Un saludico,
>>>>
>>>> Fredy
>>>>
Manu
Mensajes: 108
Registrado: Dom Sep 24, 2006 2:28 pm

Problemas para diseñar una consulta

Mensaje por Manu »

Puedes hacer un group by cliente, factura. Está claro que el resto del
SELECT lo tienes bien.
Saludos
Manu
Fredy escribió:
> Ok, creo que por ahí­ van los tiros.
>
> Muchas gracias!!
>
> Un saludico,
> Fredy
>
>
>> Fredy,
>>
>> Más sencillo que uniones y otras cosas ;-)
>>
>> SELECT a.cliente, a.factura, a,fecha, a,bruto, (SELECT SUM(b.bruto)
>> FROM
>> miTabla B WHERE b.cliente = a.cliente) AS total
>> FROM mitabla A WHERE etc...
>> Saludos,
>> José Luis Capel
>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>> news:[email=4603fe70@news.xailer.com...]4603fe70@news.xailer.com...[/email]
>>
>>> Hola José Luis,
>>>
>>> Precisamente en el WHERE es donde tengo el problema.
>>>
>>> Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del
>>> cliente 1.
>>> En realidad necesitaria algo así­ como un where pero solo para poder
>>> calcular el valor de totalcolumna.
>>> Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente,
>>> pero entonces sólo me saca una lí­na por cliente, no una lí­nea por
>>> facutra.
>>>
>>> Creo que tiene que haber una forma de hacerlo, pero cada vez me lí­o
>>> más.
>>>
>>> Un saludico,
>>> Fredy
>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el
>>> mensaje de noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>
>>>> Hola Fredy,
>>>>
>>>> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
>>>> totalfacturas FROM mitabla WHERE etc...
>>>>
>>>> Saludos,
>>>> José Luis Capel
>>>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>>>> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>>>>
>>>>> Hola,
>>>>>
>>>>> Tengo la tí­pica tabla de facturas con nº, cliente, fecha, base,
>>>>> iva, etc y quiero hacer una consulta que me devuelva los datos de
>>>>> la tabla y un nuevo campo que sea el importe total de las facturas
>>>>> de ese cliente:
>>>>>
>>>>> Si ahora tengo :
>>>>>
>>>>> cliente factura fecha importe
>>>>> ----------------------------------
>>>>> 1 1 1-1-07 100
>>>>> 1 2 1-2-07 150
>>>>> 2 3 1-2-07 10
>>>>> 2 4 2-3-07 15
>>>>> quiero que la nueva consulta me devuelva
>>>>>
>>>>> cliente factura fecha importe total
>>>>> -----------------------------------------------------
>>>>> 1 1 1-1-07 100 250
>>>>> 1 2 1-2-07 150 250
>>>>> 2 3 1-2-07 10 10
>>>>> 2 4 2-3-07 15
>>>>> 25
>>>>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo
>>>>> hacerlo
>>>>>
>>>>> ¿alguna sugerencia?
>>>>>
>>>>> Un saludico,
>>>>>
>>>>> Fredy
>>>>>
>
>
>
Manu
Mensajes: 108
Registrado: Dom Sep 24, 2006 2:28 pm

Problemas para diseñar una consulta

Mensaje por Manu »

SELECT cliente, factura, fecha, sum( bruto ), sum( base + cuotas -
descuentos ) AS
totalfacturas FROM mitabla WHERE etc...
group by cliente, factura, fecha
Prueba eso Fredy
Manu escribió:
> Puedes hacer un group by cliente, factura. Está claro que el resto del
> SELECT lo tienes bien.
>
> Saludos
> Manu
>
> Fredy escribió:
>> Ok, creo que por ahí­ van los tiros.
>>
>> Muchas gracias!!
>>
>> Un saludico,
>> Fredy
>>
>>
>>> Fredy,
>>>
>>> Más sencillo que uniones y otras cosas ;-)
>>>
>>> SELECT a.cliente, a.factura, a,fecha, a,bruto, (SELECT SUM(b.bruto)
>>> FROM
>>> miTabla B WHERE b.cliente = a.cliente) AS total
>>> FROM mitabla A WHERE etc...
>>> Saludos,
>>> José Luis Capel
>>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>>> news:[email=4603fe70@news.xailer.com...]4603fe70@news.xailer.com...[/email]
>>>
>>>> Hola José Luis,
>>>>
>>>> Precisamente en el WHERE es donde tengo el problema.
>>>>
>>>> Si pongo WHERE cliente=1, me filtra la tabla y sólo me saca los del
>>>> cliente 1.
>>>> En realidad necesitaria algo así­ como un where pero solo para poder
>>>> calcular el valor de totalcolumna.
>>>> Si pongo un GROUP, puedo hacer un Sum( base+cuota) AS Totalcliente,
>>>> pero entonces sólo me saca una lí­na por cliente, no una lí­nea por
>>>> facutra.
>>>>
>>>> Creo que tiene que haber una forma de hacerlo, pero cada vez me lí­o
>>>> más.
>>>>
>>>> Un saludico,
>>>> Fredy
>>>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el
>>>> mensaje de noticias news:4603fcd3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>
>>>>> Hola Fredy,
>>>>>
>>>>> SELECT cliente, factura, fecha, bruto, base + cuotas - descuentos AS
>>>>> totalfacturas FROM mitabla WHERE etc...
>>>>>
>>>>> Saludos,
>>>>> José Luis Capel
>>>>> "Fredy" <fredy@aglsl.com> escribió en el mensaje
>>>>> news:[email=4603f475@news.xailer.com...]4603f475@news.xailer.com...[/email]
>>>>>
>>>>>> Hola,
>>>>>>
>>>>>> Tengo la tí­pica tabla de facturas con nº, cliente, fecha, base,
>>>>>> iva, etc y quiero hacer una consulta que me devuelva los datos de
>>>>>> la tabla y un nuevo campo que sea el importe total de las facturas
>>>>>> de ese cliente:
>>>>>>
>>>>>> Si ahora tengo :
>>>>>>
>>>>>> cliente factura fecha importe
>>>>>> ----------------------------------
>>>>>> 1 1 1-1-07 100
>>>>>> 1 2 1-2-07 150
>>>>>> 2 3 1-2-07 10
>>>>>> 2 4 2-3-07 15
>>>>>> quiero que la nueva consulta me devuelva
>>>>>>
>>>>>> cliente factura fecha importe total
>>>>>> -----------------------------------------------------
>>>>>> 1 1 1-1-07 100 250
>>>>>> 1 2 1-2-07 150 250
>>>>>> 2 3 1-2-07 10 10
>>>>>> 2 4 2-3-07 15
>>>>>> 25
>>>>>> Lo vengo pensando toda la mañana y no se me ocurre cómo puedo
>>>>>> hacerlo
>>>>>>
>>>>>> ¿alguna sugerencia?
>>>>>>
>>>>>> Un saludico,
>>>>>>
>>>>>> Fredy
>>>>>>
>>
>>
>>
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Problemas para diseñar una consulta

Mensaje por jose.luis »

Manu,
> SELECT cliente, factura, fecha, sum( bruto ), sum( base + cuotas -
> descuentos ) AS
> totalfacturas FROM mitabla WHERE etc...
> group by cliente, factura, fecha
>
Así se produce una ruptura cada vez que haya un cambio de factura con lo que
para un cliente no se sabrá el total de todas sus facturas, ¿no?
Saludos,
José Luis Capel
Responder