Función de agregación Multiplicación

29/10/2004 - 12:25 por Felipe Roucher | Informe spam
¿Alguien sabe porqué no existe la función de agregación multiplicación? Ya
sé que no está en el estándar de SQL, pero no consigo entender como puedo
ser el único ser humano que necesita esta funcionalidad.

SELECT MUL(Campo) FROM Tabla

Un saludo a todos.

Preguntas similare

Leer las respuestas

#6 Gustavo Larriera [MVP]
29/10/2004 - 14:50 | Informe spam
Debes hacerlo así:

DECLARE @i REAL
SET @i=1.0


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Felipe Roucher" wrote in message
news:%

CREATE TABLE Tabla
(
Id int identity(1,1) NOT NULL,
Factor real NOT NULL
)

INSERT Tabla VALUES (0.5)
INSERT Tabla VALUES (2)
INSERT Tabla VALUES (3)
INSERT Tabla VALUES (.333333)
INSERT Tabla VALUES (4)
INSERT Tabla VALUES (.2)

DECLARE @i BIGINT
SET @i=1

SELECT @i=@i*Factor FROM Tabla

SELECT @i multiplicacion


"Tako" escribió en el mensaje
news:

Te equivocas, (acabo de probarlo de hecho) el código de abajo
funciona
perfectamente (aunque no se que hará si hay campos nulos)

Felipe Roucher wrote:
> Imagínate la siguiente tabla
>
> Id Factor
> 1 0.5
> 2 2
> 3 3
> 4 .3333333
> 5 4
> 6 0.2
>
> SELECT MUL(Campo) FROM Tabla, daría como resultado '1'
>
> Tu script me devolvería una tabla con 6 filas, ¿ves como no es lo
> mismo?
>
> Gracias de todos modos.
>
>
> "Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
> news:
>> Bueno, si sólo necesitas calcular esa multiplicación podrías
>> hacerlo así:
>>
>> DECLARE @i BIGINT
>> SET @i=1
>>
>> SELECT @i=@i*campo FROM tabla
>>
>> SELECT @i multiplicacion
>>
>>
>> Un saludo
>>
>> -
>> "Sólo sé que no sé nada. " (Sócrates)
>>
>> Por favor, responder únicamente al foro
>> Se agradece la inclusión de sentencias DDL
>>
>>
>> "Felipe Roucher" escribió en el mensaje
>> news:#
>>>
>>> ¿Alguien sabe porqué no existe la función de agregación
>>> multiplicación? Ya sé que no está en el estándar de SQL, pero no
>>> consigo entender como puedo ser el único ser humano que necesita
>>> esta funcionalidad.
>>>
>>> SELECT MUL(Campo) FROM Tabla
>>>
>>> Un saludo a todos.







Respuesta Responder a este mensaje
#7 Carlos Sacristan
29/10/2004 - 14:51 | Informe spam
Porque el script que mandé estaba pensado para multiplicaciones de
números enteros. La variable que declares tiene que ser del mismo tipo del
campo al que vas a aplicar la función, en este caso REAL. Pruébalo y verás
que el resultado es el correcto (0.79999918)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Felipe Roucher" escribió en el mensaje
news:#

CREATE TABLE Tabla
(
Id int identity(1,1) NOT NULL,
Factor real NOT NULL
)

INSERT Tabla VALUES (0.5)
INSERT Tabla VALUES (2)
INSERT Tabla VALUES (3)
INSERT Tabla VALUES (.333333)
INSERT Tabla VALUES (4)
INSERT Tabla VALUES (.2)

DECLARE @i BIGINT
SET @i=1

SELECT @i=@i*Factor FROM Tabla

SELECT @i multiplicacion


"Tako" escribió en el mensaje
news:
>
> Te equivocas, (acabo de probarlo de hecho) el código de abajo


funciona
> perfectamente (aunque no se que hará si hay campos nulos)
>
> Felipe Roucher wrote:
> > Imagínate la siguiente tabla
> >
> > Id Factor
> > 1 0.5
> > 2 2
> > 3 3
> > 4 .3333333
> > 5 4
> > 6 0.2
> >
> > SELECT MUL(Campo) FROM Tabla, daría como resultado '1'
> >
> > Tu script me devolvería una tabla con 6 filas, ¿ves como no es lo
> > mismo?
> >
> > Gracias de todos modos.
> >
> >
> > "Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
> > news:
> >> Bueno, si sólo necesitas calcular esa multiplicación podrías
> >> hacerlo así:
> >>
> >> DECLARE @i BIGINT
> >> SET @i=1
> >>
> >> SELECT @i=@i*campo FROM tabla
> >>
> >> SELECT @i multiplicacion
> >>
> >>
> >> Un saludo
> >>
> >> -
> >> "Sólo sé que no sé nada. " (Sócrates)
> >>
> >> Por favor, responder únicamente al foro
> >> Se agradece la inclusión de sentencias DDL
> >>
> >>
> >> "Felipe Roucher" escribió en el mensaje
> >> news:#
> >>>
> >>> ¿Alguien sabe porqué no existe la función de agregación
> >>> multiplicación? Ya sé que no está en el estándar de SQL, pero no
> >>> consigo entender como puedo ser el único ser humano que necesita
> >>> esta funcionalidad.
> >>>
> >>> SELECT MUL(Campo) FROM Tabla
> >>>
> >>> Un saludo a todos.
>
>
>


Respuesta Responder a este mensaje
#8 Carlos Sacristan
29/10/2004 - 14:51 | Informe spam
Maxi, no es verdad que multiplique el último registro únicamente. Por
qué dices eso?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Maxi" escribió en el mensaje
news:
Hola, ese script solo hara la nultiplicacion del ultimo registro!!

Que es lo que quieres hacer? como funciona esa funcion de multiplicacion?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Felipe Roucher" escribió en el mensaje
news:%
>
> CREATE TABLE Tabla
> (
> Id int identity(1,1) NOT NULL,
> Factor real NOT NULL
> )
>
> INSERT Tabla VALUES (0.5)
> INSERT Tabla VALUES (2)
> INSERT Tabla VALUES (3)
> INSERT Tabla VALUES (.333333)
> INSERT Tabla VALUES (4)
> INSERT Tabla VALUES (.2)
>
> DECLARE @i BIGINT
> SET @i=1
>
> SELECT @i=@i*Factor FROM Tabla
>
> SELECT @i multiplicacion
>
>
> "Tako" escribió en el mensaje
> news:
>>
>> Te equivocas, (acabo de probarlo de hecho) el código de abajo
>> funciona
>> perfectamente (aunque no se que hará si hay campos nulos)
>>
>> Felipe Roucher wrote:
>> > Imagínate la siguiente tabla
>> >
>> > Id Factor
>> > 1 0.5
>> > 2 2
>> > 3 3
>> > 4 .3333333
>> > 5 4
>> > 6 0.2
>> >
>> > SELECT MUL(Campo) FROM Tabla, daría como resultado '1'
>> >
>> > Tu script me devolvería una tabla con 6 filas, ¿ves como no es lo
>> > mismo?
>> >
>> > Gracias de todos modos.
>> >
>> >
>> > "Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el


mensaje
>> > news:
>> >> Bueno, si sólo necesitas calcular esa multiplicación podrías
>> >> hacerlo así:
>> >>
>> >> DECLARE @i BIGINT
>> >> SET @i=1
>> >>
>> >> SELECT @i=@i*campo FROM tabla
>> >>
>> >> SELECT @i multiplicacion
>> >>
>> >>
>> >> Un saludo
>> >>
>> >> -
>> >> "Sólo sé que no sé nada. " (Sócrates)
>> >>
>> >> Por favor, responder únicamente al foro
>> >> Se agradece la inclusión de sentencias DDL
>> >>
>> >>
>> >> "Felipe Roucher" escribió en el mensaje
>> >> news:#
>> >>>
>> >>> ¿Alguien sabe porqué no existe la función de agregación
>> >>> multiplicación? Ya sé que no está en el estándar de SQL, pero no
>> >>> consigo entender como puedo ser el único ser humano que necesita
>> >>> esta funcionalidad.
>> >>>
>> >>> SELECT MUL(Campo) FROM Tabla
>> >>>
>> >>> Un saludo a todos.
>>
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004


Respuesta Responder a este mensaje
#9 Maxi
29/10/2004 - 15:07 | Informe spam
jeje tienes razon!! disculpad es viernes :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:%
Maxi, no es verdad que multiplique el último registro únicamente. Por
qué dices eso?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Maxi" escribió en el mensaje
news:
Hola, ese script solo hara la nultiplicacion del ultimo registro!!

Que es lo que quieres hacer? como funciona esa funcion de multiplicacion?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Felipe Roucher" escribió en el mensaje
news:%
>
> CREATE TABLE Tabla
> (
> Id int identity(1,1) NOT NULL,
> Factor real NOT NULL
> )
>
> INSERT Tabla VALUES (0.5)
> INSERT Tabla VALUES (2)
> INSERT Tabla VALUES (3)
> INSERT Tabla VALUES (.333333)
> INSERT Tabla VALUES (4)
> INSERT Tabla VALUES (.2)
>
> DECLARE @i BIGINT
> SET @i=1
>
> SELECT @i=@i*Factor FROM Tabla
>
> SELECT @i multiplicacion
>
>
> "Tako" escribió en el mensaje
> news:
>>
>> Te equivocas, (acabo de probarlo de hecho) el código de abajo
>> funciona
>> perfectamente (aunque no se que hará si hay campos nulos)
>>
>> Felipe Roucher wrote:
>> > Imagínate la siguiente tabla
>> >
>> > Id Factor
>> > 1 0.5
>> > 2 2
>> > 3 3
>> > 4 .3333333
>> > 5 4
>> > 6 0.2
>> >
>> > SELECT MUL(Campo) FROM Tabla, daría como resultado '1'
>> >
>> > Tu script me devolvería una tabla con 6 filas, ¿ves como no es lo
>> > mismo?
>> >
>> > Gracias de todos modos.
>> >
>> >
>> > "Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el


mensaje
>> > news:
>> >> Bueno, si sólo necesitas calcular esa multiplicación podrías
>> >> hacerlo así:
>> >>
>> >> DECLARE @i BIGINT
>> >> SET @i=1
>> >>
>> >> SELECT @i=@i*campo FROM tabla
>> >>
>> >> SELECT @i multiplicacion
>> >>
>> >>
>> >> Un saludo
>> >>
>> >> -
>> >> "Sólo sé que no sé nada. " (Sócrates)
>> >>
>> >> Por favor, responder únicamente al foro
>> >> Se agradece la inclusión de sentencias DDL
>> >>
>> >>
>> >> "Felipe Roucher" escribió en el mensaje
>> >> news:#
>> >>>
>> >>> ¿Alguien sabe porqué no existe la función de agregación
>> >>> multiplicación? Ya sé que no está en el estándar de SQL, pero no
>> >>> consigo entender como puedo ser el único ser humano que necesita
>> >>> esta funcionalidad.
>> >>>
>> >>> SELECT MUL(Campo) FROM Tabla
>> >>>
>> >>> Un saludo a todos.
>>
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004
Respuesta Responder a este mensaje
#10 Felipe Roucher
29/10/2004 - 16:57 | Informe spam
¡Qué fuerte funciona!, recuérdame que te invite a comer un día. No sabía que
se podía hacer operaciones del tipo:
SELECT @i=@i*Factor FROM Tabla

Ahora tengo que empezar a entender si es posible hacer agrupaciones y cosas
más complejas en la consulta.

Bua, acabas de abrirme un via de supervivencia en el cruel mundo de la
tecnología.

Muchas gracias, aquí tienes a un servidor.


"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:%
Porque el script que mandé estaba pensado para multiplicaciones de
números enteros. La variable que declares tiene que ser del mismo tipo del
campo al que vas a aplicar la función, en este caso REAL. Pruébalo y verás
que el resultado es el correcto (0.79999918)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Felipe Roucher" escribió en el mensaje
news:#
>
> CREATE TABLE Tabla
> (
> Id int identity(1,1) NOT NULL,
> Factor real NOT NULL
> )
>
> INSERT Tabla VALUES (0.5)
> INSERT Tabla VALUES (2)
> INSERT Tabla VALUES (3)
> INSERT Tabla VALUES (.333333)
> INSERT Tabla VALUES (4)
> INSERT Tabla VALUES (.2)
>
> DECLARE @i BIGINT
> SET @i=1
>
> SELECT @i=@i*Factor FROM Tabla
>
> SELECT @i multiplicacion
>
>
> "Tako" escribió en el mensaje
> news:
> >
> > Te equivocas, (acabo de probarlo de hecho) el código de abajo
funciona
> > perfectamente (aunque no se que hará si hay campos nulos)
> >
> > Felipe Roucher wrote:
> > > Imagínate la siguiente tabla
> > >
> > > Id Factor
> > > 1 0.5
> > > 2 2
> > > 3 3
> > > 4 .3333333
> > > 5 4
> > > 6 0.2
> > >
> > > SELECT MUL(Campo) FROM Tabla, daría como resultado '1'
> > >
> > > Tu script me devolvería una tabla con 6 filas, ¿ves como no es lo
> > > mismo?
> > >
> > > Gracias de todos modos.
> > >
> > >
> > > "Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el


mensaje
> > > news:
> > >> Bueno, si sólo necesitas calcular esa multiplicación podrías
> > >> hacerlo así:
> > >>
> > >> DECLARE @i BIGINT
> > >> SET @i=1
> > >>
> > >> SELECT @i=@i*campo FROM tabla
> > >>
> > >> SELECT @i multiplicacion
> > >>
> > >>
> > >> Un saludo
> > >>
> > >> -
> > >> "Sólo sé que no sé nada. " (Sócrates)
> > >>
> > >> Por favor, responder únicamente al foro
> > >> Se agradece la inclusión de sentencias DDL
> > >>
> > >>
> > >> "Felipe Roucher" escribió en el mensaje
> > >> news:#
> > >>>
> > >>> ¿Alguien sabe porqué no existe la función de agregación
> > >>> multiplicación? Ya sé que no está en el estándar de SQL, pero no
> > >>> consigo entender como puedo ser el único ser humano que necesita
> > >>> esta funcionalidad.
> > >>>
> > >>> SELECT MUL(Campo) FROM Tabla
> > >>>
> > >>> Un saludo a todos.
> >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida