column doesn't exist

From: Ever Daniel Barreto Rojas <ebarreto(at)nexusit(dot)com(dot)py>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: column doesn't exist
Date: 2007-03-13 20:02:17
Message-ID: 1504282012.20070313160217@nexusit.com.py
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

hola a todos:

tengo la siguiente consulta:

SELECT
s.idsfamilia,
CAST(f.fam_nombre || ' - ' || s.sfam_nombre AS character varying(85)) AS familias,
(SELECT
COUNT(idarticulo)
FROM
articulo
WHERE
idsfamilia IN (
SELECT
idsfamilia
FROM
subfamilia
WHERE
idsfamilia = s.idsfamilia
)
)
AS articulos
FROM
familia f
INNER JOIN subfamilia s USING(idfamilia)
WHERE articulos > 0
ORDER BY
f.fam_nombre, s.sfam_nombre

con la consulta anterior busco saber cuántos artículos existen en
cada subfamilia, el problema que tengo es que al ejecutarla, obtengo
el error:

ERROR: column "articulos" does not exist
Estado SQL:42703

entiendo que en la parte del WHERE, la variable "articulos" no
corresponde a ninguna tabla, pero me gustaría saber de qué otra
forma podría obtener sólamente aquellos registros en donde la
cantidad de artículos sea mayor a 0

estoy utilizando la versión 8.1.3 y la definición de las tablas es
la siguiente:

CREATE TABLE familia
(
idfamilia serial NOT NULL,
fam_nombre_corto character varying(18) NOT NULL,
fam_nombre character varying(45) NOT NULL,
fam_orden smallint,
CONSTRAINT pk_familia PRIMARY KEY (idfamilia)
)
WITHOUT OIDS;

CREATE UNIQUE INDEX idx_familia
ON familia
USING btree
(idfamilia);

CREATE TABLE subfamilia
(
idsfamilia serial NOT NULL,
idfamilia integer NOT NULL,
sfam_nombre_corto character varying(18) NOT NULL,
sfam_nombre character varying(45) NOT NULL,
sfam_orden smallint,
CONSTRAINT pk_subfamilia PRIMARY KEY (idsfamilia),
CONSTRAINT fk_subfamil_idfamilia_familia FOREIGN KEY (idfamilia)
REFERENCES familia (idfamilia) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)
WITHOUT OIDS;

CREATE UNIQUE INDEX idx_subfamilia
ON subfamilia
USING btree
(idsfamilia, idfamilia);

CREATE TABLE articulo
(
idarticulo serial NOT NULL,
idsfamilia integer,
idumedida integer,
art_codbarra bigint,
art_ncorto character varying(35) NOT NULL,
art_nombres character varying(120) NOT NULL,
art_stockactual real NOT NULL,
art_stockminimo real NOT NULL,
art_costo numeric(14,2) NOT NULL,
art_porcimpuesto integer NOT NULL,
art_pventa1 numeric(14,2) NOT NULL DEFAULT 0,
art_pventa2 numeric(14,2) NOT NULL DEFAULT 0,
art_pventa3 numeric(14,2) NOT NULL DEFAULT 0,
art_pventa4 numeric(14,2) NOT NULL DEFAULT 0,
art_deducible smallint NOT NULL,
art_ubicacion character varying(16),
art_f_alta timestamp with time zone DEFAULT now(),
art_f_act timestamp with time zone DEFAULT now(),
CONSTRAINT pk_articulo PRIMARY KEY (idarticulo),
CONSTRAINT fk_articulo_idsfamili_subfamil FOREIGN KEY (idsfamilia)
REFERENCES subfamilia (idsfamilia) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT fk_articulo_idumedida_unidad_m FOREIGN KEY (idumedida)
REFERENCES unidad_medida (idumedida) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT codigo_barra_existente UNIQUE (art_codbarra)
)
WITHOUT OIDS;

CREATE INDEX fk_sf_art
ON articulo
USING btree
(idsfamilia);

gracias de antemano por la ayuda, me gustaría saber qué estoy
haciendo mal y de qué forma podría conseguir lo que estoy buscando

Cordiales saludos,

-------------------
Ever Daniel Barreto Rojas
e.mail: ebarreto(at)nexusit(dot)com(dot)py :: Nexus Information Technologies
web: www.nexusit.com.py
13/03/2007 03:55 p.m.

---------------------
Postulado de Efectividad Mental
La experiencia de un individuo aumenta proporcionalmente
con el número de aparatos que el mismo estropea
---------------------

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Martin Gomez 2007-03-13 20:03:24 RE: Fwd: Error 42601 al crear una funcion
Previous Message Ricardo Martin Gomez 2007-03-13 19:12:38 RE: Simbolos dentro de cadenas