Paul Hartland
paul.hartland at googlemail.com
Wed Sep 23 01:40:56 CDT 2009
John,
Just an idea off the top of my head, have you tried enclosing the @fldname
in brackets like below:
DECLARE @DataCnt int
SET @DataCnt = (SELECT count(PKID) as Cnt
FROM dbo.tblHSIDModified
WHERE ((@fldname) <> ''))
PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data
elements'
Paul
2009/9/23 jwcolby <jwcolby at colbyconsulting.com>
> I am trying to return a count of data items in a field of my table. When I
> directly execute the
> following I get a count:
>
> SELECT COUNT(PKID) as Cnt
> FROM dbo.tblHSIDModified
> WHERE (Household_Occupation_code <> '')
>
> The count is 15675589.
>
> When I try to do the "same thing" in a SP (to store the count) the count is
> equal to the number of
> records in the table. The SQL is:
>
> DECLARE @DataCnt int
>
> SET @DataCnt = (SELECT count(PKID) as Cnt
> FROM dbo.tblHSIDModified
> WHERE (@fldname <> ''))
>
> PRINT @fldname + ' counted: ' + cast(@DataCnt as varchar) + ' valid data
> elements'
>
> As you can see everything is the same except @FldName which is being read
> out of a cursor of field
> names. It seems obvious that @fldname <> '' evaluates to true every
> record. I don't know enough to
> know why.
>
> Somehow I need to "translate" @FldName to the actual name of the field.
>
> What is the syntax to get what I need here?
>
> TIA,
>
> --
> John W. Colby
> www.ColbyConsulting.com <http://www.colbyconsulting.com/>
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
>
>
--
Paul Hartland
paul.hartland at googlemail.com