OT - query de un solo registro - SQL SERVER

87 views
Skip to first unread message

Miguel Canchas

unread,
Aug 15, 2011, 4:50:54 PM8/15/11
to publice...@googlegroups.com

select tio.opc_numopc, tio.prp_codprp, tio.totInsOrd,

      cf.prd_codprd,  fpi_codprd, fpc_canfpc, fpi_canfpi, for_cancon, for_impnac,

      ti.TotIns,

      ConInsOrd = (totInsOrd * for_cancon)/ TotIns,

      CosInsOrd = (totInsOrd * for_impnac)/ TotIns

      into #TmpConsumoFormula

      from ##TmpTotInsOrd tio left join

                  xcosto_consumos_for cf

            on tio.prd_codprd = cf.prd_codprd

                  left join #TmpTotIns ti

            on  cf.prd_codprd = ti.prd_codprd

            where cf.cia_codcia = @p_codcia

              and cf.suc_codsuc = @p_codsuc

              and cf.ano_codano = @p_codano

              and cf.mes_codmes = @p_codmes

 

TENGO ESTA consulta, lo que deseo es que solo me arroje un registro(en la actualidad arroja 3), no importa cual de ellas sea, se podra hacer eso ¿?

 

 

Gracias

 

MK

 

Ing.Daniel Bojorge

unread,
Aug 15, 2011, 4:51:35 PM8/15/11
to publice...@googlegroups.com

Será que si ponés TOP 1 te resuelva? o un gruop by?


select top 1 tio.opc_numopc, tio.prp_codprp, tio.totInsOrd,

      cf.prd_codprd,  fpi_codprd, fpc_canfpc, fpi_canfpi, for_cancon, for_impnac,

      ti.TotIns,

      ConInsOrd = (totInsOrd * for_cancon)/ TotIns,

      CosInsOrd = (totInsOrd * for_impnac)/ TotIns

      into #TmpConsumoFormula

      from ##TmpTotInsOrd tio left join

                  xcosto_consumos_for cf

            on tio.prd_codprd = cf.prd_codprd

                  left join #TmpTotIns ti

            on  cf.prd_codprd = ti.prd_codprd

            where cf.cia_codcia = @p_codcia

              and cf.suc_codsuc = @p_codsuc

              and cf.ano_codano = @p_codano

              and cf.mes_codmes = @p_codmes



Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
www.debsconsultores.com
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)



2011/8/15 Miguel Canchas <mcan...@ximesa.com>

Walter R. Ojeda Valiente

unread,
Aug 15, 2011, 4:56:45 PM8/15/11
to publice...@googlegroups.com
Puedes escribir:

SELECT FIRST(1) etc.

O también:

SELECT .... GROUP BY tio.op_numopc ...

Saludos.

Walter.




Subject: [vfp] OT - query de un solo registro - SQL SERVER
Date: Mon, 15 Aug 2011 15:50:54 -0500
From: mcan...@ximesa.com
To: publice...@googlegroups.com

Miguel Canchas

unread,
Aug 15, 2011, 5:06:49 PM8/15/11
to publice...@googlegroups.com

Intente con el top 1, solo que este me devuelve un registro de 9, debe de devolverme 3 de 9 que son diferentes…..

 

MK

Miguel Canchas

unread,
Aug 15, 2011, 5:07:23 PM8/15/11
to publice...@googlegroups.com

El group by me pide un calculo que no necesito ni uso, estoy probando con varias…

 

 

MK

Luis Maria Guayan

unread,
Aug 15, 2011, 5:29:14 PM8/15/11
to publice...@googlegroups.com
Utiliza entonces TOP 3
 
Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Miguel Canchas

unread,
Aug 15, 2011, 5:38:20 PM8/15/11
to publice...@googlegroups.com

Me trae los 3 primeros que no me sirven para el proceso.

 

Los datos son : a ejemplo

 

1

1

1

2

2

2

3

3

3

 

9 registros, si le doy top 3, me trae los tres primeros 1 1 1, además no siempre será 3, podría ser 4 o 5 o 1, por eso necesito que solo me devuelva un registro : de cada grupo : 1 2 3

 

 

MK

Guillermo MDQ

unread,
Aug 15, 2011, 6:14:07 PM8/15/11
to Comunidad de Visual Foxpro en Español
El SQL Server no tiene clausula DISTINCT ?

Saludos
Guillermo


On 15 ago, 18:07, "Miguel Canchas" <mcanc...@ximesa.com> wrote:
> El group by me pide un calculo que no necesito ni uso, estoy probando con varias...
>
> MK
>
> De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Walter R. Ojeda Valiente
> Enviado el: lunes, 15 de agosto de 2011 03:57 p.m.
> Para: publice...@googlegroups.com
> Asunto: RE: [vfp] OT - query de un solo registro - SQL SERVER
>
> Puedes escribir:
>
> SELECT FIRST(1) etc.
>
> O también:
>
> SELECT .... GROUP BY tio.op_numopc ...
>
> Saludos.
>
> Walter.
>
> ________________________________
>
> Subject: [vfp] OT - query de un solo registro - SQL SERVER
> Date: Mon, 15 Aug 2011 15:50:54 -0500
> From: mcanc...@ximesa.com

Miguel Canchas

unread,
Aug 15, 2011, 6:55:55 PM8/15/11
to publice...@googlegroups.com
opc_numopc prp_codprp totInsOrd
2009010763 30E001600 100
2009010763 34E012100 100
2009010763 35E002900 100
2009010764 30E001600 200
2009010764 34E012100 200
2009010764 35E002900 200
2009010765 30E001600 300
2009010765 34E012100 300
2009010765 35E002900 300

Algo asi esta mi cursor, lo que necesito es algo mas o menos asi....

opc_numopc prp_codprp totInsOrd
2009010763 30E001600 100
2009010764 30E001600 200
2009010765 30E001600 300

El prp_codprp no importa cual de ellos sea.

MK

-----Mensaje original-----
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Guillermo MDQ
Enviado el: lunes, 15 de agosto de 2011 05:14 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: OT - query de un solo registro - SQL SERVER

mpulla

unread,
Aug 16, 2011, 12:32:30 PM8/16/11
to Comunidad de Visual Foxpro en Español
Hola.

Si no estoy mal Row_Number() esta disponible desde 2005, pero con
seguridad te funciona en 2008.

Select *
From (
SELECT ROW_NUMBER() OVER (PARTITION BY opc_numopc ORDER BY
opc_numopc DESC) AS 'iRow_Number',
opc_numopc, prp_codprp, totInsOrd
FROM ##TmpTotInsOrd
) As t
Where iRow_Number <=3

Saludos.
Mauricio.
Cuenca-Ecuador
Reply all
Reply to author
Forward
0 new messages