Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Colocar Order By (https://www.clubdelphi.com/foros/showthread.php?t=86418)

DasGrun 05-08-2014 23:31:04

Colocar Order By
 
Hola, Espero su Valiosa Ayuda.

Estoy ejecutando un SP Con Varios For y varios Union all de la cual no puedo Ordenar los campos por una determinada Columna.

Donde debe de ir Colocado el Order By esta consulta.

Código SQL [-]
BEGIN
FOR
 SELECT
  MA_NC_BANCARIA.ID_NOTA_CREDITO,
  MA_BANCOS.DESCRIPCION,
  MA_BANCOS.CUENTA,
  MA_NC_BANCARIA.DESCRIPCION,
  MA_NC_BANCARIA.FECHA,
  MA_BANCOS.DESCRIPCION,
  MA_NC_BANCARIA.STATUS
FROM
  MA_NC_BANCARIA
  INNER JOIN MA_BANCOS ON (MA_NC_BANCARIA.ID_BANCOS = MA_BANCOS.ID_BANCOS)
WHERE
  MA_BANCOS.ID_BANCOS = :ID_BANCOS
  INTO
  :ID_DOCUMENTO,
  :BANCO,
  :CUENTA,
  :DETALLE,
  :FECHA,
  :BENEFICIARIO,
  :ESTADO
  DO
    BEGIN
    SUSPEND;
  END
FOR
SELECT
  MA_ND_BANCARIA.ID_NOTA_DEBITO,
  MA_BANCOS.DESCRIPCION,
  MA_BANCOS.CUENTA,
  MA_ND_BANCARIA.DESCRIPCION,
  MA_ND_BANCARIA.FECHA,
  MA_BANCOS.DESCRIPCION,
  MA_ND_BANCARIA.STATUS
FROM
  MA_ND_BANCARIA
  INNER JOIN MA_BANCOS ON (MA_ND_BANCARIA.ID_BANCOS = MA_BANCOS.ID_BANCOS)
WHERE
  MA_BANCOS.ID_BANCOS = :ID_BANCOS
  INTO
   :ID_DOCUMENTO,
  :BANCO,
  :CUENTA,
  :DETALLE,
  :FECHA,
  :BENEFICIARIO,
  :ESTADO
  DO
    BEGIN
           SUSPEND;
    END

FOR
SELECT
  MA_CHEQUE.CHEQUE_ID,
  MA_BANCOS.DESCRIPCION,
  MA_BANCOS.CUENTA,
  MA_CHEQUE.DETALLE,
  MA_CHEQUE.FECHA,
  PAGAR_ORDEN.NOMBRE_ORDEN,
  MA_CHEQUE.STATUS
FROM
  MA_CHEQUE
  INNER JOIN MA_BANCOS ON (MA_CHEQUE.ID_BANCOS = MA_BANCOS.ID_BANCOS)
  INNER JOIN PAGAR_ORDEN ON (MA_CHEQUE.ORDEN_ID = PAGAR_ORDEN.ORDEN_ID)
WHERE
 MA_BANCOS.ID_BANCOS = :ID_BANCOS
 INTO
   :ID_DOCUMENTO,
  :BANCO,
  :CUENTA,
  :DETALLE,
  :FECHA,
  :BENEFICIARIO,
  :ESTADO
  DO
    BEGIN
           SUSPEND;
    END
END

Muchas Gracias Por Su Ayuda.

cloayza 06-08-2014 00:05:57

Amigo el ordenamiento debes hacerlo en la consulta que pide los datos al procedimiento.

Suponiendo que tu procedimiento se llama spDatosBancos
Código SQL [-]
Select * From spDatosBancos(1)
Order By Cuenta
Código SQL [-]
Select * From spDatosBancos(1)
Order By Fecha
Código SQL [-]
Select id_documento, banco, cuenta, detalle, fecha, beneficiario,estado From spDatosBancos(1)
Order By detalle

Saludos cordiales

DasGrun 06-08-2014 00:15:00

De Acuerdo.

Pero No Me Va a Generar Ningún Datos si ejecuto el SP como un Select ya que el SP esta relacionado con un Parámetro. Como Puedo Ejecutar un SP que tiene Parametros Por Medio de un Select?

Gracias por su Ayuda cloayza

cloayza 06-08-2014 03:56:17

Bueno amigo, el parámetro lo pasas al procedimiento almacenado...

En los ejemplos que escribí, el número 1 es el valor del parámetro que recibe el procedimiento almacenado.

Código SQL [-]
Select * From spDatosBancos(1)
Order By Cuenta

En tú caso :ID_BANCO

Como no colocas información de que componentes estas usando para accesar los datos, supongamos que usas los TIBQuery.

Sería así:
Código Delphi [-]
With Query Do
begin
   SQL.Clear;   
   SQL.Add('SELECT * FROM spDatosBancos(:ID_BANCO)');
   SQL.Add('ORDER BY Cuenta');
   ParamByName('ID_BANCO').AsInteger:=100;
   Open;
End;

Saludos cordiales

DasGrun 06-08-2014 16:42:33

Si Me Ha funcionado tal como ud me indico, se le agradece mucho, Me debe Una Colega estare Pendiente del foro para compartir informacion.

Muchas Gracias.


La franja horaria es GMT +2. Ahora son las 15:37:07.

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