Article View: chile.comp.programacion
Article #2282Re: por encargo, SQL en access...
From: Jos� Miguel Santib��ez
Date: Tue, 17 Jan 2006 03:24
Date: Tue, 17 Jan 2006 03:24
82 lines
3260 bytes
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-mailReferences:
<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