July 27, 2018 at 5:43 am
Hello comunity,
I want to use my variable on my CTE but my CTE query don´t return result.
Here is my script :
DECLARE @Orders varchar(MAX)
SET @Orders = '' SELECT @Orders = Stuff((SELECT ','+'''' + bo.obranome +''''
FROM SG..bo
where bo.obranome = '83167'
For XML PATH ('')),1,1,'')
Select @Orders ;
WITH cte_enccliS AS
( SELECT 1 [ordem],bo.dataobra [data], bo.bostamp,'1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome , bo.[no], bo.nome, bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG2008..bo INNER JOIN SG2008..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN sSG2008..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 72 and bo2.anulado = 0 and bo.obranome IN ( @Orders)
)
select * from cte_enccliS
Note : the purpose is to pass several Orders like '83167','84552'... and so on.
Can someone could give help.
Best regards,
LS
July 27, 2018 at 6:03 am
luissantos - Friday, July 27, 2018 5:43 AMHello comunity,I want to use my variable on my CTE but my CTE query don´t return result.
Here is my script :
DECLARE @Orders varchar(MAX)
SET @Orders = '' SELECT @Orders = Stuff((SELECT ','+'''' + bo.obranome +''''
FROM SG..bo
where bo.obranome = '83167'
For XML PATH ('')),1,1,'')
Select @Orders ;WITH cte_enccliS AS
( SELECT 1 [ordem],bo.dataobra [data], bo.bostamp,'1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome , bo.[no], bo.nome, bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG2008..bo INNER JOIN SG2008..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN sSG2008..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 72 and bo2.anulado = 0 and bo.obranome IN ( @Orders)
)
select * from cte_enccliS
Note : the purpose is to pass several Orders like '83167','84552'... and so on.Can someone could give help.
Best regards,
LS
It makes no difference that it's a CTE, the problem is T-SQL will not automatically split your @Orders string into multiple values. It would just look for an individual order with a value of "'83167','84552'" which clearly won't exist.
You need a table valued function that will split a comma separated variable into a table with a row for each item in the list. As you are already using SQL Server 2016 there is an inbuilt function you can use STRING_SPLIT so there is no need to write your own.
So the IN ( @Orders) part of your query needs to be changed to IN (SELECT value FROM STRING_SPLIT(@Orders, ','))
You also need to remove the unnecessary quotes the XML PATH query puts around the obranome column.
July 27, 2018 at 6:24 am
There's no way to troubleshoot without sample data, please see the link in my signature line for examples of how to help us help you.
That said, if you're just going to "SELECT * FROM cte_enccliS", why bother with the CTE at all? Just run the inner statement that is creating your CTE.
Alternatively, build the CTE dynamically, and put your @Orders value into the string before you execute it (probably not an optimal solution, use sp_executeSQL if you do this).
I don't see anything helpful about variables or scope limitations in the Microsoft documentation on CTEs, but that may be your issue too. https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-2017
-------------------------------------------------------------------------------------------------------------------------------------
Please follow Best Practices For Posting On Forums to receive quicker and higher quality responses
July 27, 2018 at 6:35 am
Jonathan AC Roberts - Friday, July 27, 2018 6:03 AMIt makes no difference that it's a CTE, the problem is T-SQL will not automatically split your @Orders string into multiple values. It would just look for an individual order with a value of "'83167','84552'" which clearly won't exist.
You need a table valued function that will split a comma separated variable into a table with a row for each item in the list. As you are already using SQL Server 2016 there is an inbuilt function you can use STRING_SPLIT so there is no need to write your own.
So the IN ( @Orders) part of your query needs to be changed to IN (SELECT value FROM STRING_SPLIT(@Orders, ','))
You also need to remove the unnecessary quotes the XML PATH query puts around the obranome column.
well would you look at that. Thanks, namesake! Luis, dynamically generated string removes the need for splitting, but probably isn't better. Also, are you sure your order number is a string and not an int? Just throwing that out there in case.
DECLARE @Orders varchar(max);
SET @Orders = '83167,84552';
SELECT Item FROM dbo.fn_all_mhi_delimitedSplit8K(@Orders,',');
CREATE TABLE #myTable (iRow int identity(1,1),
orderNum char(5)
)
INSERT INTO #myTable (orderNum)
SELECT '83167' UNION
SELECT '84552' UNION
SELECT '12345';
SELECT * FROM #myTable;
SELECT * FROM #myTable
WHERE orderNum IN (@Orders);
SELECT * FROM #myTable
WHERE orderNum IN (SELECT Item FROM dbo.fn_all_mhi_delimitedSplit8K(@Orders,','))
DROP TABLE #myTable;
-------------------------------------------------------------------------------------------------------------------------------------
Please follow Best Practices For Posting On Forums to receive quicker and higher quality responses
July 27, 2018 at 6:46 am
luissantos - Friday, July 27, 2018 5:43 AMHello comunity,I want to use my variable on my CTE but my CTE query don´t return result.
Here is my script :
DECLARE @Orders varchar(MAX)
SET @Orders = '' SELECT @Orders = Stuff((SELECT ','+'''' + bo.obranome +''''
FROM SG..bo
where bo.obranome = '83167'
For XML PATH ('')),1,1,'')
Select @Orders ;WITH cte_enccliS AS
( SELECT 1 [ordem],bo.dataobra [data], bo.bostamp,'1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome , bo.[no], bo.nome, bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG2008..bo INNER JOIN SG2008..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN sSG2008..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 72 and bo2.anulado = 0 and bo.obranome IN ( @Orders)
)
select * from cte_enccliS
Note : the purpose is to pass several Orders like '83167','84552'... and so on.Can someone could give help.
Best regards,
LS
Actually there is no need to split strings as the orders you are looking for are already in a table that you are already querying.
I also can't see the need for using a CTE.
SELECT 1 [ordem],bo.dataobra [data], bo.bostamp,'1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome , bo.[no], bo.nome, bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG2008..bo
INNER JOIN SG2008..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN sSG2008..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 72
and bo2.anulado = 0
and bo.obranome IN (SELECT bo.obranome FROM SG..bo where bo.obranome = '83167' )
The only reason you might want to split it into two statements is if performance is better doing it that way.
July 27, 2018 at 7:14 am
Hello,
Thanks for all your replies , i will go create function to split values.
Many thanks
LS
July 27, 2018 at 7:44 am
luissantos - Friday, July 27, 2018 7:14 AMHello,Thanks for all your replies , i will go create function to split values.
Many thanks
LS
As you are using SQL Server 2016 and if you are using compatibility level 130 or above I'd suggest using the inbuilt STRING_SPLIT function.
July 27, 2018 at 7:46 am
luissantos - Friday, July 27, 2018 7:14 AMHello,Thanks for all your replies , i will go create function to split values.
Many thanks
LS
I'll give you hint on that subject... if you use a WHILE loop, recursive CTE, XML, or any form of concatenation, you're splitter will suck for performance. 😉 Please see the following article on all that as well as a splitter that doesn't suck for performance.
http://www.sqlservercentral.com/articles/Tally+Table/72993/
--Jeff Moden
Change is inevitable... Change for the better is not.
July 27, 2018 at 11:19 am
I don't see a need for a variable or a splitter, or am I missing something?
/*
First of all, unless you really need deferred binding you should specify the schema of your
tables. The code posted will default to dbo unless the user running the code has a different
default schema.
*/
-- The following 4 lines are not even needed.
DECLARE @Orders VARCHAR(MAX);
SET @Orders = '';
SELECT @Orders = STUFF((SELECT ',' + '''' + [bo].[obranome] + '''' FROM [SG].[dbo].[bo] WHERE [bo].[obranome] = '83167' FOR XML PATH('')), 1, 1, '');
SELECT @Orders;
-- This IS ALL you really need
WITH [cte_enccliS] AS
(
SELECT
1 [ordem]
, [bo].[dataobra] [data]
, [bo].[bostamp]
, '1 Sgate - ' + [bo].[nmdos] [Doc]
, [bo].[obrano]
, [bo].[obranome]
, [bo].[no]
, [bo].[nome]
, [bi].[ref] [ref]
, [bi].[qtt] [Quant]
, [bi].[edebito] [ValorVenda]
, [bi].[ettdeb] [Total]
, [bi].[oobistamp]
FROM
[SG2008].[dbo].[bo]
INNER JOIN [SG2008].[dbo].[bo2]
ON [bo2].[bo2stamp] = [bo].[bostamp]
INNER JOIN [sSG2008].[dbo].[bi]
ON [bi].[bostamp] = [bo].[bostamp]
WHERE
[bo].[ndos] = 72
AND [bo2].[anulado] = 0
AND [bo].[obranome] IN (SELECT
[bo].[obranome]
FROM
[SG].[dbo].[bo]
WHERE
[bo].[obranome] = '83167')
)
SELECT * FROM [cte_enccliS];
July 29, 2018 at 10:31 am
Hello Lynn,
Thanks for your reply, i need the variable because i want more than One order for muito query result and nota ONLY the order 83167.
For example : '83167','84562', ... And so on , that s why i use :
DECLARE @Orders varchar(MAX)
SET @Orders = '' SELECT @Orders = Stuff((SELECT ','+'''' + bo.obranome +''''
FROM SG..bo
where bo.obranome = '83167'-- This where Clause was ONLY for teste and must be removed.
For XML PATH ('')),1,1,'')
Select @Orders ;
The purpose are using these variable value to use on my other CTE.
Best regards,
Luis
July 29, 2018 at 12:01 pm
Luis, I think you failed to understand what others were trying to explain but as I may be wrong can you explain to us how you will determine the content of your @orders variable - will it be with a similar sql to the one you supplied or will it be a list of orders you pass, for example, onto a stored proc as a parameter?
If I am correct on what you are attempting to do and on the usage you will give the @orders variable on the remaining of your code (which you didn't supply or explained) then I would probably recommend the following approach.
First in terms of string split use the one from http://www.sqlservercentral.com/articles/Tally+Table/72993/
-- assume @obranamelist is a comma delimited list of order names - with or without single quotes
declare @obranamelist varchar(200) = '''1234'',''333'',,'''',334,55543'
-- declare temp table to hold the list of obra nomes to process
declare @obranomes table
(obraname varchar(20) -- change size as required
)
-- split supplied list of nomes and insert them into the working table
-- ignore possible cases where the name is empty
-- remove duplicates just in case
-- also remove single quotes if they were supplied -- should be reviewed if any name can contain a single quote as a valid part of the name
insert into @obranomes
select distinct
replace(item,'''','')
from dbo.DelimitedSplit8K(@obranamelist,',')
where replace(item,'''','') <> ''
-- if list of nomes is significant - > 500 or so -- then using a temp table may be better
-- once the list of nomes is processed the resulting table can be used to join through out the remaining code
SELECT 1 [ordem],bo.dataobra [data], bo.bostamp,'1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome , bo.[no], bo.nome, bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG2008..bo
INNER JOIN SG2008..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN sSG2008..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 72
and bo2.anulado = 0
and bo.obranome IN (select obraname from @obranomes) -- eventually use a inner join instead of "in" as it may perform better
July 29, 2018 at 2:50 pm
Hello Frederico,
Thanks for the reply.
I understood the answers that were mentioned that I thank you all, my question was only to assign several text values in a single variable and to use the same in several queries.
Thank you for reminding me of Jeff's spectacular function using a Tally Table, as I have had many ocassions where I had to use it due to lower SQL versions than 2012.
Because I am in a sql server 2016, I remembered that there is a built-in of function STRING_SPLIT, and then I decided to re-write the query in this way which solved the situation:
DECLARE @Orders varchar(MAX)
SET @Orders = ''
SELECT @Orders = Stuff((SELECT ','+ bo.obranome
FROM SG..bo
For XML PATH ('')),1,1,'')
SELECT 1 [ordem],bo.dataobra [data], '1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome ,
bo.[no], bo.nome,
BO2.TKHLPNT [NrCliente Pedido],BO2.VERSAOCRONO [Nome Cliente Pedido],
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 72 and bo2.anulado = 0
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
UNION ALL
SELECT 2 [ordem],bo.dataobra [data], '2 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 2 and bo2.anulado = 0 and bo.no in ( 91)
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
UNION ALL
SELECT 3 [ordem],bo.dataobra [data], '3 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.u_oribostp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 73 and bo2.anulado = 0 and bo.no in (91)
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
and bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%') and bi.ref <> ''
UNION ALL
SELECT 4 [ordem],bo.dataobra [data], '4 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 70 and bo2.anulado = 0
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
and bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%') and bi.ref <> ''
However your help is very well commented, thank you.
Best regards,
LS
July 29, 2018 at 7:46 pm
luissantos - Sunday, July 29, 2018 2:50 PMHello Frederico,Thanks for the reply.
I understood the answers that were mentioned that I thank you all, my question was only to assign several text values in a single variable and to use the same in several queries.
Thank you for reminding me of Jeff's spectacular function using a Tally Table, as I have had many ocassions where I had to use it due to lower SQL versions than 2012.
Because I am in a sql server 2016, I remembered that there is a built-in of function STRING_SPLIT, and then I decided to re-write the query in this way which solved the situation:
DECLARE @Orders varchar(MAX)
SET @Orders = ''
SELECT @Orders = Stuff((SELECT ','+ bo.obranome
FROM SG..bo
For XML PATH ('')),1,1,'')SELECT 1 [ordem],bo.dataobra [data], '1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome ,
bo.[no], bo.nome,
BO2.TKHLPNT [NrCliente Pedido],BO2.VERSAOCRONO [Nome Cliente Pedido],
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 72 and bo2.anulado = 0
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))UNION ALL
SELECT 2 [ordem],bo.dataobra [data], '2 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 2 and bo2.anulado = 0 and bo.no in ( 91)
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))UNION ALL
SELECT 3 [ordem],bo.dataobra [data], '3 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.u_oribostp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 73 and bo2.anulado = 0 and bo.no in (91)
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
and bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%') and bi.ref <> ''UNION ALL
SELECT 4 [ordem],bo.dataobra [data], '4 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 70 and bo2.anulado = 0
and bo.obranome IN (SELECT VALUE FROM STRING_SPLIT(@Orders, ','))
and bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%') and bi.ref <> ''However your help is very well commented, thank you.
Best regards,
LS
You could still write your query avoiding any string splitting:
SELECT 1 [ordem],bo.dataobra [data], '1 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome ,
bo.[no], bo.nome,
BO2.TKHLPNT [NrCliente Pedido],BO2.VERSAOCRONO [Nome Cliente Pedido],
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 72 and bo2.anulado = 0
and bo.obranome IN (SELECT bo.obranome FROM SG..bo)
UNION ALL
SELECT 2 [ordem],bo.dataobra [data], '2 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 2 and bo2.anulado = 0 and bo.no in ( 91)
and bo.obranome IN (SELECT bo.obranome FROM SG..bo)
UNION ALL
SELECT 3 [ordem],bo.dataobra [data], '3 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.u_oribostp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE
bo.ndos = 73 and bo2.anulado = 0 and bo.no in (91)
and bo.obranome IN (SELECT bo.obranome FROM SG..bo
WHERE bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%'))
and bi.ref <> ''
UNION ALL
SELECT 4 [ordem],bo.dataobra [data], '4 Sgate - '+bo.nmdos [Doc], bo.obrano, bo.obranome,
bo.no, bo.nome, BO2.TKHLPNT,BO2.VERSAOCRONO,
bi.ref [ref], bi.qtt [Quant], bi.edebito [ValorVenda], bi.ettdeb [Total], bi.oobistamp
FROM SG..bo INNER JOIN SG..bo2 ON bo2.bo2stamp = bo.bostamp
INNER JOIN SG..bi ON bi.bostamp = bo.bostamp
WHERE bo.ndos = 70 and bo2.anulado = 0
and bo.obranome IN (SELECT bo.obranome FROM SG..bo)
WHERE bo.obranome NOT LIKE ('%[^a-zA-Z0-9.-/ ]%'))
and bi.ref <> ''
I doubt it will be any slower than using STRING_SPLIT as the obranome values will be used from the cache.
July 29, 2018 at 8:18 pm
luissantos - Sunday, July 29, 2018 10:31 AMHello Lynn,
Thanks for your reply, i need the variable because i want more than One order for muito query result and nota ONLY the order 83167.
For example : '83167','84562', ... And so on , that s why i use :
DECLARE @Orders varchar(MAX)
SET @Orders = '' SELECT @Orders = Stuff((SELECT ','+'''' + bo.obranome +''''
FROM SG..bo
where bo.obranome = '83167'-- This where Clause was ONLY for teste and must be removed.For XML PATH ('')),1,1,'')
Select @Orders ;The purpose are using these variable value to use on my other CTE.
Best regards,
Luis
Then drop the where clause from the subquery. There is still no reason for the separate query to build the list that then needs to be split in the main query. That is the point I was try to make.
Viewing 14 posts - 1 through 13 (of 13 total)
You must be logged in to reply to this topic. Login to reply