Article View: chile.comp.programacion
Article #2528Re: alias en select sql
From: Jos� Miguel Santib��ez
Date: Tue, 06 Dec 2005 01:37
Date: Tue, 06 Dec 2005 01:37
103 lines
4366 bytes
4366 bytes
En el cap�tulo anterior (news:dn20hv$dcb$1@news.nivel5.cl), "Rick_oj"
<rick_oj@[sin-esto]tutopia.com> dijo:
(...)
>>> tengo algo asi
>>>
>>> SELECT * FROM usuario, facturacion WHERE facturacion.id <> NULL
>>> ORDER BY usuario.Nombre
>>>
>>> me gustaria poder hacer algo asi
>>>
>>> SELECT * as resultado FROM usuario, facturacion WHERE facturacion.id
>>> <> NULL ORDER BY usuario.Nombre if resultado=NULL resultado='No hay
>>> datos'
>>>
>>> los resultados se van a un campo html select, entonces con lo que
>>> tengo cuando no hay resultados el select esta vacio, con lo segundo
>>> mostraria no hay datos cuando no existan resultados
>>>
>>> no estoy seguro si se puede usar if y asignacion de variables del
>>> tipo alias en sql
>>>
>>> se agradece
>>>
>>
>> Est�s un tanto mareado con el SQL... eso no funciona as�...
>
> a�ejo y no me acordaba por eso pregunte
ta bien, no es pa' ponerse sensible :-)
>> el alias, siempre es a un campo espec�fico (o una tabla espec�fica),
>> por ejemplo:
>> select count(*) as cantidad from tabla;
>> select campo1, count(*) as cantidad from tabla having cantidad > 0
>> group by campo1;
>>
>> y su objetivo es simplificar la lectura o el acceso a los datos
>> (primer caso) y/o adem�s permitir aplicar restricciones (segundo
>> caso).
>>
>> Pero para lo que pides, necesitas combinar SQL y c�digo...
>>
>> SELECT * FROM usuario, facturacion WHERE facturacion.id
>> <> NULL ORDER BY usuario.Nombre;
>>
>> luego determinar si hay datos (la mayor�a de las APIs te permiten
>> consultar la cantidad de datos) y si no hay, entonces colocar el
>> mensaje y si hay, recorrer la lista... Te pondr�a alg�n ejemplo, pero
>> no indicaste lenguaje...
>
> algo habia pensado, pero no estab seguro si sql me lo saba de una
>
> mysql y php
lo supuse, pero adem�s andaba corto de tiempo ;-)
$sql = 'SELECT *
FROM usuario, facturacion
WHERE facturacion.id is not NULL
ORDER BY usuario.Nombre';
$res = mysql_query($sql) or die(" $sql -> " . mysql_error());
echo "<table>";
if (mysql_num_rows($res) == 0) {
echo "<tr><th>No hay datos...</th></tr>";
} else {
while ($row = mysql_fetch_row($res)) {
echo "<tr>";
for ($i = 0; $i < count($row); $i++) {
echo "<td>" . $row[$i] . "</td>";
}
echo "</tr>";
}
}
echo "</table>";
>> (PD: en el SQL falta la relaci�n entre facturaci�n y usuario)
>
> usuario tiene los nombres y un identificador, facturacion la fecha en
> que les facturan la cuenta el select muestra a todos los usuarios
> disponibles que aun no se les ingresa la fecha de facturacion
>
Ok, pero debe haber alg�n campo que relacione ambas tablas, probablemente
en facturaci�n est� el id del usuario y eso hay que agregarlo al query...
("AND usuario.id = facturacion.user_id" o algo similar).
O peor, esto cachando que debes necesitar algo como:
SELECT usuario.*
FROM usuario left join facturacion
on usuario.id = facturacion.id
WHERE facturacion.id is null
ORDER BY usuario.Nombre
para que responda a lo que necesitas...
--
Jose M. Santiba�ez A.
<jms@nivel5.cl>
<http://caos.cl/jms>
Technical Details
Message-ID:
<Xns9723F06C738D7jmsnews@200.27.221.71>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mailReferences:
<dn1p7g$agt$1@news.nivel5.cl> <Xns9723998EBBDCFjmsnews@200.27.221.71> <dn20hv$dcb$1@news.nivel5.cl>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,9e1bad619270f126
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: alias en select sql
From: "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl>
References: <dn1p7g$agt$1@news.nivel5.cl> <Xns9723998EBBDCFjmsnews@200.27.221.71> <dn20hv$dcb$1@news.nivel5.cl>
Organization: Caos Consultores
Message-ID: <Xns9723F06C738D7jmsnews@200.27.221.71>
User-Agent: Xnews/5.04.25
X-Face: +|NgjgFM{<rs%\Q|vUu16]a6,}?MJTA<!PEEI+x&Gw-Gyq+?$}fvo+.(,-r;)~Qzn)#{{nxU,OT?w^s<7m4ckCJ*L$c#I)yHL7b)GdU*#l
NNTP-Posting-Host: 236-83-112.adsl.terra.cl
X-Original-NNTP-Posting-Host: 236-83-112.adsl.terra.cl
Date: 5 Dec 2005 21:37:51 -0400
X-Trace: news.vcd.cl!not-for-mail 1133833071 236-83-112.adsl.terra.cl (5 Dec 2005 21:37:51 -0400)
X-Original-Trace: 5 Dec 2005 21:37:51 -0400, 236-83-112.adsl.terra.cl
Lines: 103
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mail