🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2528

Re: alias en select sql

#2528
From: Jos� Miguel Santib��ez
Date: Tue, 06 Dec 2005 01:37
103 lines
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-mail
References: <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