Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como cojo el valor de la consulta del count (https://www.clubdelphi.com/foros/showthread.php?t=35638)

serhasae 16-09-2006 11:42:39

como cojo el valor de la consulta del count
 
Código SQL [-]
Select count * from Pedidos,Clientes where id.pedido=id.cliente

La Select para mi estaria clara, pero el count como lo meto en una variable, esa variable seria una variable normal declarada como entero o como seria. Gracias.

dec 16-09-2006 12:26:11

Hola,

Algo así podría servir, si no me equivoco:

Código SQL [-]
SELECT COUNT(*) AS TotalPedidos FROM Pedidos, Clientes WHERE (id.pedido = id.cliente)

Aunque, no sé yo si quedaría mejor algo así:

Código SQL [-]
SELECT COUNT(Pedidos.CampoX) AS TotalPedidos FROM Pedidos, Clientes WHERE (id.pedido = id.cliente)

marcoszorrilla 16-09-2006 13:21:25

Creo que lo quieres es esto:
Código Delphi [-]
Var
nCuantos:Integer;
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select count * from Pedidos,Clientes where id.pedido=id.cliente);
Query1.Open;
nCuantos:=Query1.Fields[0].AsInteger;
end;

Un Saludo.

Sotrono 16-09-2006 19:20:07

serhasae: Mas cuidado al poner el titulo a tus mensajes, recorda que no todos somo españoles. :D :D

marcoszorrilla 16-09-2006 21:39:48

Cita:

como cojo el valor de la consulta del count
Creo que ya sé por donde vienes, seguro que eres argentino?

jejeje.

Parecido pasaría si un mexicano dijera "chingar", al aplicarlo aquí en España.

Un saludo neutral.

serhasae 19-09-2006 16:44:48

Ahh vale,marcos no me funciona, estoy usando Delphi 6 y de base de datos paradox, a ver quiero hacer algo asi:

dm.QHorario.SQL.Clear;
dm.QHorario.SQL.Add('SELECT DISTINCT(COUNT *) FROM HORARIO H,FICHAS F');
dm.QHorario.SQL.Add('WHERE H.NUM_FICHA=F.NUM_FICHA AND H.FECHA>:e');


y luego como asigno el resultado a la variable para ver cuantos hay?.

En las consultas de arriba dec como accedes desde fuera a la variable Totalpedidos, la declaras fuera para poder usarla despues o es un campo de la tabla?.

Por cierto soy español de pura zepa. Saludos desde Valencia (España).

marcoszorrilla 19-09-2006 17:23:54

Si la variable, la tienes que declarar previamente. Lo de la nacionalidad argentina, como puede colegirse va dirigido a Sotrono, por lo interpretación entrepernil del verbo cojer.

Un Saludo.

serhasae 19-09-2006 17:55:06

Vale marcos la variable la declaro previamente, pero la consulta para contar las fichas distintas, estaria bien asi?

TOTALFICHAS:integer;

Código SQL [-]
 
dm.QHorario.SQL.Clear;
dm.QHorario.SQL.Add('SELECT COUNT(DISTINCT NUM_FICHA) AS TOTALFICHAS FROM HORARIO,FICHA ');
dm.QHorario.SQL.Add('WHERE HORARIO.NUM_FICHA=FICHA.NUM_FICHA');
dm.QHorario.SQL.Add(' AND HORARIO.F_INI_HORARIO<=:e');

Me dice que no reconoce el campo Num_ficha a que puede ser debido.
Y es la clave primaria en la tabla Ficha y forma parte de la clave
primaria en Horario. Saludos.

vtdeleon 19-09-2006 19:11:46

Saludos

En esta parte de al sentencia "COUNT(DISTINCT NUM_FICHA)" debes especificar de qeu tabla es ese campo, porque hay ambiguedad.

serhasae 19-09-2006 20:11:10

Sigue sin reconocerme el campo Num_Ficha, distingue entre mayusculas y minusculas?.

Lo he cambiado pero sigue dando el mismo error:

Código SQL [-]
 
dm.QHorario.SQL.Clear;
dm.QHorario.SQL.Add('SELECT COUNT(DISTINCT HORARIO.NUM_FICHA) AS TOTALFICHAS');
dm.QHorario.SQL.Add(' FROM HORARIO,FICHA ');
dm.QHorario.SQL.Add('WHERE HORARIO.NUM_FICHA=FICHA.NUM_FICHA');
dm.QHorario.SQL.Add(' AND HORARIO.F_INI_HORARIO<=:e');

Kipow 29-09-2006 20:30:06

Proba quitando el DISTINCT de la sentencia dejalo unicamente COUNT(*)

Héctor Randolph 30-09-2006 04:29:58

Otra opción, intenta colocar el DISTINCT enseguida del SELECT y no dentro del paréntesis:

Código SQL [-]
dm.QHorario.SQL.Clear;
dm.QHorario.SQL.Add('SELECT DISTINCT COUNT(HORARIO.NUM_FICHA) AS TOTALFICHAS');
dm.QHorario.SQL.Add(' FROM HORARIO,FICHA ');
dm.QHorario.SQL.Add('WHERE HORARIO.NUM_FICHA=FICHA.NUM_FICHA');
dm.QHorario.SQL.Add(' AND HORARIO.F_INI_HORARIO<=:e');

Saludos


La franja horaria es GMT +2. Ahora son las 00:23:18.

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