🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2282

Re: por encargo, SQL en access...

#2282
From: Jos� Miguel Santib��ez
Date: Tue, 17 Jan 2006 03:24
82 lines
3260 bytes
En el cap�tulo anterior (news:dqhiqc$ggi$1@news.nivel5.cl), Eduardo
Quiroz <eduardoquiroz@vtr.net> dijo: 

> Jos� Miguel Santib��ez escribi�:
>> Holap,
>> 
>> Un amigo tiene el siguiente problema:
>> tabla 1:
>>  create table productos (
>>     pr_cod varchar(4) not null,
>>     pr_desc varchar(200),
>>     primary key(pr_cod));
>> 
>> Data:
>> 'a001', 'l�piz'
>> 'a002', 'cuaderno'
>> 'a003', 'regla'
>> 'a004', 'goma'
>> 
>> 
>> tabla 2:
>>   create table inventario (
>>     bo_cod varchar (2) not null,
>>     pr_cod varchar (4) not null,
>>     in_cant integer not null default 0,
>>     primary key(bo_cod, pr_cod));
>> 
>> Data:
>> 'a001', '01', 10
>> 'a002', '01', 15
>> 'a003', '01', 20
>> 'a001', '02', 10
>> 'a002', '02', 15
>> 'a004', '01', 20
>> 
>> Y necesita un SQL en access que le permita obtener todos los
>> productos y sus cantidades, pero para una bodega dada, y que si no
>> hay productos en esa bodega (no hay l�nea) le retorne una l�nea de
>> null... 
>> 
>> Eso, en SQL est�ndar (SQL Server, MySQL, etc) se hace con:
>> 
>> select productos.*, in_cant
>>   from producto left join inventario
>>     on producto.pr_cod = inventario.pr_cod
>>    and inventario.bo_cod = '01'
>> 
>> Que retornar�a:
>> 'a001', 'l�piz', 10
>> 'a002', 'cuaderno', 15
>> 'a003', 'regla', 20
>> 'a004', 'goma', null
>> 
>> Sin embargo, access no acepta ese query y reclama en la l�nea:
>>    and inventario.bo_cod = '01'
>> 
>> alguna sugerencia???
>> 
> maese???
> no deber�a serel left join solo con el pr_cod y lo otro una condici�n,
> con lo cual
> and inventario.bo_cod = '01' deberia ser having inventario.bo_cod='01'
> 
> 

Si haces eso, entonces solo obtienes:
'a001', 'l�piz', 10
'a002', 'cuaderno', 15
'a003', 'regla', 20

y la cuarta l�nea no aparece...

El problema, es que al hacer el join, si no filtras ah� mismo la bodega, se  
obtiene al menos un registro para cada producto... Es similar a colocar ese 
dato en el where...

eso...

-- 
                           Jose M. Santiba�ez A.
                             <jms@nivel5.cl>
                           <http://caos.cl/jms>
Technical Details
Message-ID: <Xns974DEC6B52718jmsnews@200.27.221.71>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news3.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail
References: <Xns974DE640EAC54jmsnews@200.27.221.71> <dqhiqc$ggi$1@news.nivel5.cl>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,9e1bf3f5cdc0fd35
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: por encargo, SQL en access...
From: "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl>
References: <Xns974DE640EAC54jmsnews@200.27.221.71> <dqhiqc$ggi$1@news.nivel5.cl>
Organization: Caos Consultores
Message-ID: <Xns974DEC6B52718jmsnews@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: 24-80-112.adsl.terra.cl
X-Original-NNTP-Posting-Host: 24-80-112.adsl.terra.cl
Date: 16 Jan 2006 23:24:15 -0400
X-Trace: news.vcd.cl!not-for-mail 1137464655 200.112.80.24 (16 Jan 2006 23:24:15 -0400)
X-Original-Trace: 16 Jan 2006 23:24:15 -0400, 24-80-112.adsl.terra.cl
Lines: 82
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news3.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail