Solved

Integrate two queries

Posted on 2016-09-15
13
47 Views
Last Modified: 2016-09-16
This sql server query gets the words that I want to pass to the lower query am struggling to do that

select  TW.ClientCode,tw.word - sequence column here from next bit of sql


from Tblwords TW
where clientcode='54553002'
group by TW.ClientCode, TW.ClientCode,tw.word

Open in new window


declare
	@string varchar(1000)='OCEAN'  this would become tw.word



select 
	(
		select 
			cast(ascii(substring(@string,N,1)) as varchar(5))+','
		from 
			[dictionary].[dbo].[fnTally]() nr
		where
			nr.N<=len(@string) 
		FOR XML PATH('')
	) as ascii_seq

Open in new window


example output from first query
0
Comment
Question by:PeterBaileyUk
  • 5
  • 5
  • 2
  • +1
13 Comments
 
LVL 65

Expert Comment

by:Jim Horn
ID: 41800397
This question does not contain enough details and simple English to be actionable.  Please revisit the question and ask again..
0
 
LVL 40

Expert Comment

by:Sharath
ID: 41800442
try this.
declare @string varchar(1000)='OCEAN'  this would become tw.word

select @string = tw.word 
from Tblwords TW
where clientcode='54553002'
group by TW.ClientCode,tw.word

select 
    (
        select 
            cast(ascii(substring(@string,N,1)) as varchar(5))+','
        from 
            [dictionary].[dbo].[fnTally]() nr
        where
            nr.N<=len(@string) 
        FOR XML PATH('')
    ) as ascii_seq

Open in new window

0
 
LVL 17

Expert Comment

by:Pawan Kumar Khowal
ID: 41800856
Try this

select tw.word, scr
from Tblwords TW
CROSS APPLY
(
SELECT 
scr FROM
    (
        select 
            cast(ascii(substring(tw.word,N,1)) as varchar(5))+',' scr
        from 
            [dictionary].[dbo].[fnTally]() nr
        where
            nr.N<=len(tw.word) 
        FOR XML PATH('')
    )ascii_seq
)t
where clientcode='54553002'
group by TW.ClientCode,scr,tw.word

Open in new window

0
 

Author Comment

by:PeterBaileyUk
ID: 41800995
This id ID: 41799397 an excellent solution gives me the ascii summed sequence per group of words.

I need to do the same now but at letter level.

my first query gives
<TW ClientCode="54553002" word="OCEAN" />
<TW ClientCode="54553002" word="RACE" />
<TW ClientCode="54553002" word="T6" />
<TW ClientCode="54553002" word="XC90" />

i was hoping I could extract the sequence of the ascii letters in a new column:
OCEAN sequence = 79, 67, 69, 65, 78
RACE =82, 65, 67, 69

ID: 41800856 had error

Msg 8155, Level 16, State 2, Line 17
No column name was specified for column 1 of 'ascii_seq'.
Msg 207, Level 16, State 1, Line 7
Invalid column name 'scr'.
0
 
LVL 40

Expert Comment

by:Sharath
ID: 41801041
Which post are you referring?
0
 
LVL 17

Expert Comment

by:Pawan Kumar Khowal
ID: 41801045
Try this

select tw.word, scr
from Tblwords TW
CROSS APPLY
(

        select 
            cast(ascii(substring(tw.word,N,1)) as varchar(5))+',' scr
        from 
            [dictionary].[dbo].[fnTally]() nr
        where
            nr.N<=len(tw.word) 
        FOR XML PATH('')
    
)y
where clientcode='54553002'
group by TW.ClientCode,scr,tw.word

Open in new window

0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:PeterBaileyUk
ID: 41801074
its saying:
Msg 8155, Level 16, State 2, Line 16
No column name was specified for column 1 of 'y'.
Msg 207, Level 16, State 1, Line 17
Invalid column name 'scr'.
Msg 207, Level 16, State 1, Line 2
Invalid column name 'scr'.
0
 
LVL 17

Expert Comment

by:Pawan Kumar Khowal
ID: 41801076
Try this

select TW.ClientCode,tw.word,
			  STUFF 
                ((
						select 
							cast(ascii(substring(tw.word,N,1)) as varchar(5))+',' 
						from 
							[dictionary].[dbo].[fnTally]() nr
						where
							nr.N<=len(tw.word) 
						FOR XML PATH('')
					) ,1,2,'') 
                AS cusr
from Tblwords TW
where clientcode='54553002'
group by TW.ClientCode,tw.word

Open in new window

0
 

Author Comment

by:PeterBaileyUk
ID: 41801085
Its working structurally but dishing out the wrong answer
it gave out
it should be
ROWs
1
2 race=82,65, 67,69
3 t6 =84,54
4 XC90= 88, 67, 57, 48

Its missed the first line
0
 

Author Comment

by:PeterBaileyUk
ID: 41801089
if i do this it works, that proves out the function itself, apart from the , at the end
 
use Dictionary

select 
							cast(ascii(substring('OCEAN',N,1)) as varchar(5))+',' 
						from 
							[dictionary].[dbo].[fnTally]() nr
						where
							nr.N<=len('OCEAN') 
						FOR XML PATH('')

Open in new window

0
 
LVL 17

Accepted Solution

by:
Pawan Kumar Khowal earned 500 total points
ID: 41801096
What about

select TW.ClientCode,tw.word,
			   
                ((
						select 
							cast(ascii(substring(tw.word,N,1)) as varchar(5))+',' 
						from 
							[dictionary].[dbo].[fnTally]() nr
						where
							nr.N<=len(tw.word) 
						FOR XML PATH('')
					) ) 
                AS cusr
from Tblwords TW
where clientcode='54553002'
group by TW.ClientCode,tw.word

Open in new window

0
 

Author Comment

by:PeterBaileyUk
ID: 41801109
That got it can the end comma the redundant one be removed ? i will post another question for that if you want
0
 
LVL 17

Expert Comment

by:Pawan Kumar Khowal
ID: 41801113
Okies fine. So Are you done with this question. If yes could you please one answer as accepted solution. and raise another question. ?

Great! Thanks !
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Nowadays, some of developer are too much worried about data. Who is using data, who is updating it etc. etc. Because, data is more costlier in term of money and information. So security of data is focusing concern in days. Lets' understand the Au…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now