Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
SQL
ce
clients
clustering
connect
datamining
datawarehouse
dts
fulltext
jdbcdriver
msde
mseq
newusers
notificationsvcs
odbc
olap
programming
replication
reportingsvcs
security
securitytools
server
setup
sqlxml.viewmapper
tools
xml
  
 
date: Fri, 29 Aug 2008 09:14:32 -0700 (PDT),    group: microsoft.public.sqlserver.fulltext        back       


Need help with sqlserver search stored procedure.   
HI,

 I am writing a stored procedure for my search box control. I found
this sample code which sets the @WORD1 to 'TBB-12' and searches 1
table for the information. I set the value to TBB-12 and specified to
look in the dbo.product_id. It did find the product id = TBB-12 on the
first result row, however, it return a bunch other rows, which none of
the column fields contains the value 'TBB-12'. In theory, a search
should only return 1 row, correct? Why am I getting a bunch extra
useless rows? What is wrong with the sql query?

Thanks,

John

3 * dbo.WordCount('TBB-12', (actress1.fullname + ' '
+actress2.fullname + actress3.fullname + ' ' + actress4.fullname + '
'+ actress5.fullname + ' '+ actress6.fullname + ' '+ actress7.fullname
+ ' '+ actress8.fullname + ' '+ actress9.fullname + ' '+
actress10.fullname)) + dbo.WordCount('TBB-12', dbo.dvd.product_id)

SELECT dbo.dvd.dvdid,
COALESCE(actress1.fullname+',',actress2.fullname+',',actress3.fullname
+',',actress4.fullname+',',actress5.fullname+',',actress6.fullname
+',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
+',',actress10.fullname+',','')
+ COALESCE(actress2.fullname+',',actress3.fullname
+',',actress4.fullname+',',actress5.fullname+',',actress6.fullname
+',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
+',',actress10.fullname+',','')
+ COALESCE(actress3.fullname+',',actress4.fullname
+',',actress5.fullname+',',actress6.fullname+',',actress7.fullname
+',',actress8.fullname+',',actress9.fullname+',',actress10.fullname
+',','')
+ COALESCE(actress4.fullname+',',actress5.fullname
+',',actress6.fullname+',',actress7.fullname+',',actress8.fullname
+',',actress9.fullname+',',actress10.fullname+',','')
+ COALESCE(actress5.fullname+',',actress6.fullname
+',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
+',',actress10.fullname+',','')
+ COALESCE(actress6.fullname+',',actress7.fullname
+',',actress8.fullname+',',actress9.fullname+',',actress10.fullname
+',','')
+ COALESCE(actress7.fullname+',',actress8.fullname
+',',actress9.fullname+',',actress10.fullname+',','')
+ COALESCE(actress8.fullname+',',actress9.fullname
+',',actress10.fullname+',','')
+ COALESCE(actress9.fullname+',',actress10.fullname+',','')
+ COALESCE(actress10.fullname+',',''),
               dbo.dvd.title,
               dbo.dvd.product_id,
               dbo.dvd.num_discs,
               dbo.dvd.description,
               CAST(ROUND(dbo.price.price,2) AS DECIMAL(4,2)),
               dbo.dvd.cover,
3 * dbo.WordCount('TBB-12', (actress1.fullname + ' '
+actress2.fullname + actress3.fullname + ' ' + actress4.fullname + '
'+ actress5.fullname + ' '+ actress6.fullname + ' '+ actress7.fullname
+ ' '+ actress8.fullname + ' '+ actress9.fullname + ' '+
actress10.fullname)) + dbo.WordCount('TBB-12', dbo.dvd.product_id)
AS rank
from dbo.dvd
LEFT JOIN dbo.actress actress1 ON actress1.actressid =
dbo.dvd.actressid1
LEFT JOIN dbo.actress actress2 ON actress2.actressid =
dbo.dvd.actressid2
LEFT JOIN dbo.actress actress3 ON actress3.actressid =
dbo.dvd.actressid3
LEFT JOIN dbo.actress actress4 ON actress4.actressid =
dbo.dvd.actressid4
LEFT JOIN dbo.actress actress5 ON actress5.actressid =
dbo.dvd.actressid5
LEFT JOIN dbo.actress actress6 ON actress6.actressid =
dbo.dvd.actressid6
LEFT JOIN dbo.actress actress7 ON actress7.actressid =
dbo.dvd.actressid7
LEFT JOIN dbo.actress actress8 ON actress8.actressid =
dbo.dvd.actressid8
LEFT JOIN dbo.actress actress9 ON actress9.actressid =
dbo.dvd.actressid9
LEFT JOIN dbo.actress actress10 ON actress10.actressid =
dbo.dvd.actressid10
inner join dbo.actress
on dbo.dvd.actressid1 = dbo.actress.actressid
inner join dbo.price
on dbo.price.quantity = dbo.dvd.num_discs and dbo.price.producttype =
'dvd'
order by rank desc
date: Fri, 29 Aug 2008 09:14:32 -0700 (PDT)   author:   unknown

Re: Need help with sqlserver search stored procedure.   
This does not appear to be a full-text query. It does not use a freetext or 
contains predicate.

Is this the complete query? What does the query look like in profiler?


 wrote in message 
news:bcbdd265-4c51-4be9-a8ed-ffcfc8c490ba@f63g2000hsf.googlegroups.com...
> HI,
>
> I am writing a stored procedure for my search box control. I found
> this sample code which sets the @WORD1 to 'TBB-12' and searches 1
> table for the information. I set the value to TBB-12 and specified to
> look in the dbo.product_id. It did find the product id = TBB-12 on the
> first result row, however, it return a bunch other rows, which none of
> the column fields contains the value 'TBB-12'. In theory, a search
> should only return 1 row, correct? Why am I getting a bunch extra
> useless rows? What is wrong with the sql query?
>
> Thanks,
>
> John
>
> 3 * dbo.WordCount('TBB-12', (actress1.fullname + ' '
> +actress2.fullname + actress3.fullname + ' ' + actress4.fullname + '
> '+ actress5.fullname + ' '+ actress6.fullname + ' '+ actress7.fullname
> + ' '+ actress8.fullname + ' '+ actress9.fullname + ' '+
> actress10.fullname)) + dbo.WordCount('TBB-12', dbo.dvd.product_id)
>
> SELECT dbo.dvd.dvdid,
> COALESCE(actress1.fullname+',',actress2.fullname+',',actress3.fullname
> +',',actress4.fullname+',',actress5.fullname+',',actress6.fullname
> +',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
> +',',actress10.fullname+',','')
> + COALESCE(actress2.fullname+',',actress3.fullname
> +',',actress4.fullname+',',actress5.fullname+',',actress6.fullname
> +',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
> +',',actress10.fullname+',','')
> + COALESCE(actress3.fullname+',',actress4.fullname
> +',',actress5.fullname+',',actress6.fullname+',',actress7.fullname
> +',',actress8.fullname+',',actress9.fullname+',',actress10.fullname
> +',','')
> + COALESCE(actress4.fullname+',',actress5.fullname
> +',',actress6.fullname+',',actress7.fullname+',',actress8.fullname
> +',',actress9.fullname+',',actress10.fullname+',','')
> + COALESCE(actress5.fullname+',',actress6.fullname
> +',',actress7.fullname+',',actress8.fullname+',',actress9.fullname
> +',',actress10.fullname+',','')
> + COALESCE(actress6.fullname+',',actress7.fullname
> +',',actress8.fullname+',',actress9.fullname+',',actress10.fullname
> +',','')
> + COALESCE(actress7.fullname+',',actress8.fullname
> +',',actress9.fullname+',',actress10.fullname+',','')
> + COALESCE(actress8.fullname+',',actress9.fullname
> +',',actress10.fullname+',','')
> + COALESCE(actress9.fullname+',',actress10.fullname+',','')
> + COALESCE(actress10.fullname+',',''),
>               dbo.dvd.title,
>               dbo.dvd.product_id,
>               dbo.dvd.num_discs,
>               dbo.dvd.description,
>               CAST(ROUND(dbo.price.price,2) AS DECIMAL(4,2)),
>               dbo.dvd.cover,
> 3 * dbo.WordCount('TBB-12', (actress1.fullname + ' '
> +actress2.fullname + actress3.fullname + ' ' + actress4.fullname + '
> '+ actress5.fullname + ' '+ actress6.fullname + ' '+ actress7.fullname
> + ' '+ actress8.fullname + ' '+ actress9.fullname + ' '+
> actress10.fullname)) + dbo.WordCount('TBB-12', dbo.dvd.product_id)
> AS rank
> from dbo.dvd
> LEFT JOIN dbo.actress actress1 ON actress1.actressid =
> dbo.dvd.actressid1
> LEFT JOIN dbo.actress actress2 ON actress2.actressid =
> dbo.dvd.actressid2
> LEFT JOIN dbo.actress actress3 ON actress3.actressid =
> dbo.dvd.actressid3
> LEFT JOIN dbo.actress actress4 ON actress4.actressid =
> dbo.dvd.actressid4
> LEFT JOIN dbo.actress actress5 ON actress5.actressid =
> dbo.dvd.actressid5
> LEFT JOIN dbo.actress actress6 ON actress6.actressid =
> dbo.dvd.actressid6
> LEFT JOIN dbo.actress actress7 ON actress7.actressid =
> dbo.dvd.actressid7
> LEFT JOIN dbo.actress actress8 ON actress8.actressid =
> dbo.dvd.actressid8
> LEFT JOIN dbo.actress actress9 ON actress9.actressid =
> dbo.dvd.actressid9
> LEFT JOIN dbo.actress actress10 ON actress10.actressid =
> dbo.dvd.actressid10
> inner join dbo.actress
> on dbo.dvd.actressid1 = dbo.actress.actressid
> inner join dbo.price
> on dbo.price.quantity = dbo.dvd.num_discs and dbo.price.producttype =
> 'dvd'
> order by rank desc
date: Fri, 29 Aug 2008 20:44:14 -0400   author:   Hilary Cotter

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us