Home All Groups Group Topic Archive Search About

Iteration in a stored procedure

Author
29 Jun 2006 12:58 AM
onecorp
I have a storde procedure which compares one column of a table against each
of the other columns in the same table. If it finds a 'one' in each column,
it counts the number of 'paired data' . As there can be up to 60 columns and
60 rows in any table , can anyone suggest a shorter , more efficient way of
writing the following code? Any assistanc ewould be appreciated. Thank you.

ALTER PROCEDURE GetXXXXXXAll
    /*
    (
    @IdNumber = 1
    )
    */
AS

Begin

    /* SET NOCOUNT ON */

    SELECT      COUNT ([1]) As Expr1,
               COUNT([1] + [2]) AS Expr2, COUNT([1] + [3]) AS Expr3, COUNT([1]
+ [4]) AS Expr4, COUNT([1] + [5]) AS Expr5,
               COUNT([1] + [6]) AS Expr6,COUNT([1] + [7]) AS Expr7, COUNT([1] +
[8]) AS Expr8, COUNT([1] + [9]) AS Expr9,
               COUNT([1] + [10]) AS Expr10, COUNT([1] + [11]) AS Expr11,
COUNT([1] + [12]) AS Expr12,COUNT([1] + [13]) AS Expr13,
               COUNT([1] + [14]) AS Expr14, COUNT([1] + [15]) AS Expr15,
COUNT([1] + [16]) AS Expr16,COUNT([1] + [17]) AS Expr17,
               COUNT([1] + [18]) AS Expr18, COUNT([1] + [19]) AS Expr19,
COUNT([1] + [20]) AS Expr20,COUNT([1] + [21]) AS Expr21,
               COUNT([1] + [22]) AS Expr22, COUNT([1] + [23]) AS Expr23,
COUNT([1] + [24]) AS Expr24,COUNT([1] + [25]) AS Expr25,
               COUNT([1] + [26]) AS Expr26, COUNT([1] + [27]) AS Expr27,
COUNT([1] + [28]) AS Expr28,COUNT([1] + [29]) AS Expr29,
               COUNT([1] + [30]) AS Expr30,
                COUNT ([2]) As Expr31,
               COUNT([2] + [3]) AS Expr32, COUNT([2] + [4]) AS Expr33,
COUNT([2] + [5]) AS Expr34,
               COUNT([2] + [6]) AS Expr35,COUNT([2] + [7]) AS Expr36, COUNT([2]
+ [8]) AS Expr37, COUNT([2] + [9]) AS Expr38,
               COUNT([2] + [10]) AS Expr39, COUNT([2] + [11]) AS Expr40,
COUNT([2] + [12]) AS Expr41,COUNT([2] + [13]) AS Expr42,
               COUNT([2] + [14]) AS Expr43, COUNT([2] + [15]) AS Expr44,
COUNT([2] + [16]) AS Expr45,COUNT([2] + [17]) AS Expr46,
               COUNT([2] + [18]) AS Expr47, COUNT([2] + [19]) AS Expr48,
COUNT([2] + [20]) AS Expr49,COUNT([2] + [21]) AS Expr50,
               COUNT([2] + [22]) AS Expr51, COUNT([2] + [23]) AS Expr52,
COUNT([2] + [24]) AS Expr53,COUNT([2] + [25]) AS Expr54,
               COUNT([2] + [26]) AS Expr55, COUNT([2] + [27]) AS Expr56,
COUNT([2] + [28]) AS Expr57,COUNT([2] + [29]) AS Expr58,
               COUNT([2] + [30]) AS Expr59,
                COUNT ([3]) As Expr60,
               COUNT([3] + [4]) AS Expr61, COUNT([3] + [5]) AS Expr62,
               COUNT([3] + [6]) AS Expr63,COUNT([3] + [7]) AS Expr64, COUNT([3]
+ [8]) AS Expr65, COUNT([3] + [9]) AS Expr66,
               COUNT([3] + [10]) AS Expr67, COUNT([3] + [11]) AS Expr68,
COUNT([3] + [12]) AS Expr69,COUNT([3] + [13]) AS Expr70,
               COUNT([3] + [14]) AS Expr71, COUNT([3] + [15]) AS Expr72,
COUNT([3] + [16]) AS Expr73,COUNT([3] + [17]) AS Expr74,
               COUNT([3] + [18]) AS Expr75, COUNT([3] + [19]) AS Expr76,
COUNT([3] + [20]) AS Expr77,COUNT([3] + [21]) AS Expr78,
               COUNT([3] + [22]) AS Expr79, COUNT([3] + [23]) AS Expr80,
COUNT([3] + [24]) AS Expr81,COUNT([3] + [25]) AS Expr82,
               COUNT([3] + [26]) AS Expr83, COUNT([3] + [27]) AS Expr84,
COUNT([3] + [28]) AS Expr85,COUNT([3] + [29]) AS Expr86,
               COUNT([3] + [30]) AS Expr87,
                COUNT ([4]) As Expr88,
               COUNT([4] + [5]) AS Expr89,
               COUNT([4] + [6]) AS Expr90,COUNT([4] + [7]) AS Expr91, COUNT([4]
+ [8]) AS Expr92, COUNT([4] + [9]) AS Expr93,
               COUNT([4] + [10]) AS Expr94, COUNT([4] + [11]) AS Expr95,
COUNT([4] + [12]) AS Expr96,COUNT([4] + [13]) AS Expr97,
               COUNT([4] + [14]) AS Expr98, COUNT([4] + [15]) AS Expr99,
COUNT([4] + [16]) AS Expr100,COUNT([4] + [17]) AS Expr101,
               COUNT([4] + [18]) AS Expr102, COUNT([4] + [19]) AS Expr103,
COUNT([4] + [20]) AS Expr104,COUNT([4] + [21]) AS Expr105,
               COUNT([4] + [22]) AS Expr106, COUNT([4] + [23]) AS Expr107,
COUNT([4] + [24]) AS Expr108,COUNT([4] + [25]) AS Expr109,
               COUNT([4] + [26]) AS Expr110, COUNT([4] + [27]) AS Expr111,
COUNT([4] + [28]) AS Expr112,COUNT([4] + [29]) AS Expr113,
               COUNT([4] + [30]) AS Expr114,
                COUNT ([5]) As Expr115,
               COUNT([5] + [6]) AS Expr116,COUNT([5] + [7]) AS Expr117,
COUNT([5] + [8]) AS Expr118, COUNT([5] + [9]) AS Expr119,
               COUNT([5] + [10]) AS Expr120, COUNT([5] + [11]) AS Expr121,
COUNT([5] + [12]) AS Expr122,COUNT([5] + [13]) AS Expr123,
               COUNT([5] + [14]) AS Expr124, COUNT([5] + [15]) AS Expr125,
COUNT([5] + [16]) AS Expr126,COUNT([5] + [17]) AS Expr127,
               COUNT([5] + [18]) AS Expr128, COUNT([5] + [19]) AS Expr129,
COUNT([5] + [20]) AS Expr130,COUNT([5] + [21]) AS Expr131,
               COUNT([5] + [22]) AS Expr132, COUNT([5] + [23]) AS Expr133,
COUNT([5] + [24]) AS Expr134,COUNT([5] + [25]) AS Expr135,
               COUNT([5] + [26]) AS Expr136, COUNT([5] + [27]) AS Expr137,
COUNT([5] + [28]) AS Expr138,COUNT([5] + [29]) AS Expr139,
               COUNT([5] + [30]) AS Expr140
..
..
..  etc
..
..
COUNT([60] + [60]) AS Expr1859



    FROM       XXXXXXFrequencyTable
    WHERE                 ([1] = 1) OR
                          ([1] = 1) AND ([2] = 1) OR
                          ([1] = 1) AND ([3] = 1) OR
                          ([1] = 1) AND ([4] = 1) OR
                          ([1] = 1) AND ([5] = 1) OR
                          ([1] = 1) AND ([6] = 1) OR
                          ([1] = 1) AND ([7] = 1) OR
                          ([1] = 1) AND ([8] = 1) OR
                          ([1] = 1) AND ([9] = 1) OR
                          ([1] = 1) AND ([10] = 1) OR
                          ([1] = 1) AND ([11] = 1) OR
                          ([1] = 1) AND ([12] = 1) OR
                          ([1] = 1) AND ([13] = 1) OR
                          ([1] = 1) AND ([14] = 1) OR
                          ([1] = 1) AND ([15] = 1) OR
                          ([1] = 1) AND ([16] = 1) OR
                          ([1] = 1) AND ([17] = 1) OR
                          ([1] = 1) AND ([18] = 1) OR
                          ([1] = 1) AND ([19] = 1) OR
                          ([1] = 1) AND ([20] = 1) OR
                          ([1] = 1) AND ([21] = 1) OR
                          ([1] = 1) AND ([22] = 1) OR
                          ([1] = 1) AND ([23] = 1) OR
                          ([1] = 1) AND ([24] = 1) OR
                          ([1] = 1) AND ([25] = 1) OR
                          ([1] = 1) AND ([26] = 1) OR
                          ([1] = 1) AND ([27] = 1) OR
                          ([1] = 1) AND ([28] = 1) OR
                          ([1] = 1) AND ([29] = 1) OR
                          ([1] = 1) AND ([30] = 1) OR
                          ([2] = 1) OR
                          ([2] = 1) AND ([3] = 1) OR
                          ([2] = 1) AND ([4] = 1) OR
                          ([2] = 1) AND ([5] = 1) OR
                          ([2] = 1) AND ([6] = 1) OR
                          ([2] = 1) AND ([7] = 1) OR
                          ([2] = 1) AND ([8] = 1) OR
                          ([2] = 1) AND ([9] = 1) OR
                          ([2] = 1) AND ([10] = 1) OR
                          ([2] = 1) AND ([11] = 1) OR
                          ([2] = 1) AND ([12] = 1) OR
                          ([2] = 1) AND ([13] = 1) OR
                          ([2] = 1) AND ([14] = 1) OR
                          ([2] = 1) AND ([15] = 1) OR
                          ([2] = 1) AND ([16] = 1) OR
                          ([2] = 1) AND ([17] = 1) OR
                          ([2] = 1) AND ([18] = 1) OR
                          ([2] = 1) AND ([19] = 1) OR
                          ([2] = 1) AND ([20] = 1) OR
                          ([2] = 1) AND ([21] = 1) OR
                          ([2] = 1) AND ([22] = 1) OR
                          ([2] = 1) AND ([23] = 1) OR
                          ([2] = 1) AND ([24] = 1) OR
                          ([2] = 1) AND ([25] = 1) OR
                          ([2] = 1) AND ([26] = 1) OR
                          ([2] = 1) AND ([27] = 1) OR
                          ([2] = 1) AND ([28] = 1) OR
                          ([2] = 1) AND ([29] = 1) OR
                          ([2] = 1) AND ([30] = 1) OR
                          ([3] = 1) OR
                          ([3] = 1) AND ([4] = 1) OR
                          ([3] = 1) AND ([5] = 1) OR
                          ([3] = 1) AND ([6] = 1) OR
                          ([3] = 1) AND ([7] = 1) OR
                          ([3] = 1) AND ([8] = 1) OR
                          ([3] = 1) AND ([9] = 1) OR
                          ([3] = 1) AND ([10] = 1) OR
                          ([3] = 1) AND ([11] = 1) OR
                          ([3] = 1) AND ([12] = 1) OR
                          ([3] = 1) AND ([13] = 1) OR
                          ([3] = 1) AND ([14] = 1) OR
                          ([3] = 1) AND ([15] = 1) OR
                          ([3] = 1) AND ([16] = 1) OR
                          ([3] = 1) AND ([17] = 1) OR
                          ([3] = 1) AND ([18] = 1) OR
                          ([3] = 1) AND ([19] = 1) OR
                          ([3] = 1) AND ([20] = 1) OR
                          ([3] = 1) AND ([21] = 1) OR
                          ([3] = 1) AND ([22] = 1) OR
                          ([3] = 1) AND ([23] = 1) OR
                          ([3] = 1) AND ([24] = 1) OR
                          ([3] = 1) AND ([25] = 1) OR
                          ([3] = 1) AND ([26] = 1) OR
                          ([3] = 1) AND ([27] = 1) OR
                          ([3] = 1) AND ([28] = 1) OR
                          ([3] = 1) AND ([29] = 1) OR
                          ([3] = 1) AND ([30] = 1) OR
                           ([4] = 1) OR
                          ([4] = 1) AND ([5] = 1) OR
                          ([4] = 1) AND ([6] = 1) OR
                          ([4] = 1) AND ([7] = 1) OR
                          ([4] = 1) AND ([8] = 1) OR
                          ([4] = 1) AND ([9] = 1) OR
                          ([4] = 1) AND ([10] = 1) OR
                          ([4] = 1) AND ([11] = 1) OR
                          ([4] = 1) AND ([12] = 1) OR
                          ([4] = 1) AND ([13] = 1) OR
                          ([4] = 1) AND ([14] = 1) OR
                          ([4] = 1) AND ([15] = 1) OR
                          ([4] = 1) AND ([16] = 1) OR
                          ([4] = 1) AND ([17] = 1) OR
                          ([4] = 1) AND ([18] = 1) OR
                          ([4] = 1) AND ([19] = 1) OR
                          ([4] = 1) AND ([20] = 1) OR
                          ([4] = 1) AND ([21] = 1) OR
                          ([4] = 1) AND ([22] = 1) OR
                          ([4] = 1) AND ([23] = 1) OR
                          ([4] = 1) AND ([24] = 1) OR
                          ([4] = 1) AND ([25] = 1) OR
                          ([4] = 1) AND ([26] = 1) OR
                          ([4] = 1) AND ([27] = 1) OR
                          ([4] = 1) AND ([28] = 1) OR
                          ([4] = 1) AND ([29] = 1) OR
                          ([4] = 1) AND ([30] = 1) OR
                          ([5] = 1) OR
                          ([5] = 1) AND ([6] = 1) OR
                          ([5] = 1) AND ([7] = 1) OR
                          ([5] = 1) AND ([8] = 1) OR
                          ([5] = 1) AND ([9] = 1) OR
                          ([5] = 1) AND ([10] = 1) OR
                          ([5] = 1) AND ([11] = 1) OR
                          ([5] = 1) AND ([12] = 1) OR
                          ([5] = 1) AND ([13] = 1) OR
                          ([5] = 1) AND ([14] = 1) OR
                          ([5] = 1) AND ([15] = 1) OR
                          ([5] = 1) AND ([16] = 1) OR
                          ([5] = 1) AND ([17] = 1) OR
                          ([5] = 1) AND ([18] = 1) OR
                          ([5] = 1) AND ([19] = 1) OR
                          ([5] = 1) AND ([20] = 1) OR
                          ([5] = 1) AND ([21] = 1) OR
                          ([5] = 1) AND ([22] = 1) OR
                          ([5] = 1) AND ([23] = 1) OR
                          ([5] = 1) AND ([24] = 1) OR
                          ([5] = 1) AND ([25] = 1) OR
                          ([5] = 1) AND ([26] = 1) OR
                          ([5] = 1) AND ([27] = 1) OR
                          ([5] = 1) AND ([28] = 1) OR
                          ([5] = 1) AND ([29] = 1) OR
                          ([5] = 1) AND ([30] = 1)
..
..                         
..   etc                         
..                                 
                                     ([60] = 1) AND ([60] = 1)   
    END

Author
29 Jun 2006 1:23 AM
Tracy McKibben
onecorp wrote:
> I have a storde procedure which compares one column of a table against each
> of the other columns in the same table. If it finds a 'one' in each column,
> it counts the number of 'paired data' . As there can be up to 60 columns and
> 60 rows in any table , can anyone suggest a shorter , more efficient way of
> writing the following code? Any assistanc ewould be appreciated. Thank you.
>

Holy moley!!!  What in the world is this for?  If the values of these
fields are truly limited to 1 or 0, you could probably do something like
SUM([1] * [2]) AS Expr2 instead of COUNT([1] + [2]) AS Expr2, and
eliminate the WHERE clause entirely.  If [1] = 1 and [2] = 0, the SUM is
going to increase by zero (1 * 0), essentially the same effect you're
getting by counting WHERE ([1] = 1 AND [2] = 1).

Does that make sense?
Author
29 Jun 2006 8:06 AM
jsfromynr
Hi There,
I hope this help

Select 1 R ,1 val1,1 val2,1 val3 , 1 val4 into dummy

insert into dummy Select 2 R ,1 val1,1 val2,1 val3 , 1 val4
insert into dummy Select 3 R ,1 val1,1 val2,1 val3 , 4 val4

Select * from dummy


Select *,
(
case when val1=1 then 1 else 0 end +
case when val2=1 then 1 else 0 end +
case when val3=1 then 1 else 0 end +
case when val4=1 then 1 else 0 end
)/2 As Pairs
From dummy


With Warm regards
Jatinder Singh
http://jatindersingh.blogspot.com
Tracy McKibben wrote:
Show quote
> onecorp wrote:
> > I have a storde procedure which compares one column of a table against each
> > of the other columns in the same table. If it finds a 'one' in each column,
> > it counts the number of 'paired data' . As there can be up to 60 columns and
> > 60 rows in any table , can anyone suggest a shorter , more efficient way of
> > writing the following code? Any assistanc ewould be appreciated. Thank you.
> >
>
> Holy moley!!!  What in the world is this for?  If the values of these
> fields are truly limited to 1 or 0, you could probably do something like
> SUM([1] * [2]) AS Expr2 instead of COUNT([1] + [2]) AS Expr2, and
> eliminate the WHERE clause entirely.  If [1] = 1 and [2] = 0, the SUM is
> going to increase by zero (1 * 0), essentially the same effect you're
> getting by counting WHERE ([1] = 1 AND [2] = 1).
>
> Does that make sense?
Author
29 Jun 2006 8:38 AM
Charles Wang[MSFT]
Hi,
Thanks for your post!

From your description, I understand that:
A table of your database includes 60 columns and 60 rows.
You wanted to get a 60*60 matrix, in which any item ([x,y]) value
represents the count when column x equals column y and both of their values
are 1.
If I have misunderstood, please feel free to let me know.

If the column type is bit, Tracy's idea is wonderful. I also recommend you
use SUM expression to retrieve the count value.
Otherwise, in this case, the where clause can be written as "WHERE
[1]+[2]+[3]+...+[60]>0".

However if the column type is not bit and the value may be out of 0 and 1,
the where clause should be separated.

I recommend you write a function which can count by accepting the two
parameters of each coordinates.
And then you can get all items count by this way:
SELECT proc_selcount(1,1) as [1_1],proc_selcount(1,2) as
[1_2],proc_selcount(1,3) as [1_3],....,proc_selcount(60,60) as [60_60] into
MATRIX;
SELECT * FROM MATRIX;

If you have any other concerns, please feel free to let me know. It's my
pleasure to be of assistance.

+++++++++++++++++++++++++++
Charles Wang
Microsoft Online Partner Support
+++++++++++++++++++++++++++

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

=====================================================
Business-Critical Phone Support (BCPS) provides you with technical phone
support at no charge during critical LAN outages or "business down"
situations. This benefit is available 24 hours a day, 7 days a week to all
Microsoft technology partners in the United States and Canada.

This and other support options are available here:

BCPS:
https://partner.microsoft.com/US/technicalsupport/supportoverview/40010469
Others:
https://partner.microsoft.com/US/technicalsupport/supportoverview/

If you are outside the United States, please visit our International
Support page:
http://support.microsoft.com/default.aspx?scid=%2finternational.aspx.
=====================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
Author
29 Jun 2006 10:49 AM
Omnibuzz
Hi,
   Can you give the table definition and the insert script for the data? I
have got the result you had mailed.
Moreover, is it always 60 columns or will it change?

--
-Omnibuzz (The SQL GC)

http://omnibuzz-sql.blogspot.com/
Author
29 Jun 2006 11:19 AM
Omnibuzz
Hi,
  Since I didn't get the data, I created with a temp table which has 6
columns.
It can be extended to 60 columns or how many ever you want, just add those
columns in the pivot and unpivot expression.

Let me know if this was what you expected.

-- Insert script
Select 1 [1],0 [2],1 [3] , 1 [4] , 0 [5], 1 [6] into #temp

insert into #temp Select 1 ,1 ,0 , 1,0,0
insert into #temp Select 1 ,1 ,1 , 1 ,1,1

insert into #temp Select 1 ,0 ,0 , 1,1,0
insert into #temp Select 1 ,1 ,1 , 0,0,1

insert into #temp Select 0 ,1 ,1 , 0,1,0

--Query

with cte as(
select row_id, loc, val from
(select row_number() over (order by  [1]) as row_id, * from #temp) as a
unpivot (val for loc in ([1],[2],[3],[4],[5],[6])) as U
), cte1 as(
select a.loc as loc,b.loc as loc2,sum(a.val*b.val)  as cnt from cte a, cte b
where a.row_id = b.row_id
and a.loc <= b.loc
group by a.loc,b.loc
)
select * from cte1
pivot ( sum(cnt) for loc2 in ([1],[2],[3],[4],[5],[6])) as P

Hope this helps.
-Omni
Author
1 Jul 2006 6:05 AM
onecorp
Thank you to all for their assistance.

To Omnibuzz

......my apologies for the lack of a reply, but it was probably dut to time
differences etc.

I originally derived the table by using in-line SQL. I was then advised that
that was not a good idea, and hence came up with the stored procedure (one
example of my attempts being the one I posted ).
Regarding the table definition:
At the first block of code referring to NUmber [1] I used create table.
At each block thereafter, I used 'insert into table' thereby building up
each row.
To display the results, I used a gridview control to obtain the data from
the tbale created in the stored procedure and a 'sort' to get the rows in the
right order.


In your reply you wrote:

-- Insert script
Select 1 [1],0 [2],1 [3] , 1 [4] , 0 [5], 1 [6] into #temp

insert into #temp Select 1 ,1 ,0 , 1,0,0
insert into #temp Select 1 ,1 ,1 , 1 ,1,1

insert into #temp Select 1 ,0 ,0 , 1,1,0
insert into #temp Select 1 ,1 ,1 , 0,0,1

insert into #temp Select 0 ,1 ,1 , 0,1,0

Why in the select stmt is it  1 [1],0 [2],1 [3] , 1 [4] , 0 [5], 1 [6]  and
not
1 [1],1 [2],1 [3] , 1 [4] , 1 [5], 1 [6]   ?

What do the 'ones' and 'zeroes' mean in this exp ? insert into #temp Select
1 ,1 ,0 , 1,0,0


Dear Mr WANG,

Can you please tell me what proc_selcount means?


Thank you

Show quote
"onecorp" wrote:

> I have a stored procedure which compares one column of a table against each
> of the other columns in the same table. If it finds a 'one' in each column,
> it counts the number of 'paired data' . As there can be up to 60 columns and
> 60 rows in any table , can anyone suggest a shorter , more efficient way of
> writing the following code? Any assistance would be appreciated. Thank you.
>
> ALTER PROCEDURE GetXXXXXXAll
>     /*
>     (
>     @IdNumber = 1
>     )
>     */
> AS
>
> Begin
>
>     /* SET NOCOUNT ON */
>    
>     SELECT      COUNT ([1]) As Expr1,
>                COUNT([1] + [2]) AS Expr2, COUNT([1] + [3]) AS Expr3, COUNT([1]
> + [4]) AS Expr4, COUNT([1] + [5]) AS Expr5,
>                COUNT([1] + [6]) AS Expr6,COUNT([1] + [7]) AS Expr7, COUNT([1] +
> [8]) AS Expr8, COUNT([1] + [9]) AS Expr9,
>                COUNT([1] + [10]) AS Expr10, COUNT([1] + [11]) AS Expr11,
> COUNT([1] + [12]) AS Expr12,COUNT([1] + [13]) AS Expr13,
>                COUNT([1] + [14]) AS Expr14, COUNT([1] + [15]) AS Expr15,
> COUNT([1] + [16]) AS Expr16,COUNT([1] + [17]) AS Expr17,
>                COUNT([1] + [18]) AS Expr18, COUNT([1] + [19]) AS Expr19,
> COUNT([1] + [20]) AS Expr20,COUNT([1] + [21]) AS Expr21,
>                COUNT([1] + [22]) AS Expr22, COUNT([1] + [23]) AS Expr23,
> COUNT([1] + [24]) AS Expr24,COUNT([1] + [25]) AS Expr25,
>                COUNT([1] + [26]) AS Expr26, COUNT([1] + [27]) AS Expr27,
> COUNT([1] + [28]) AS Expr28,COUNT([1] + [29]) AS Expr29,
>                COUNT([1] + [30]) AS Expr30,
>                 COUNT ([2]) As Expr31,
>                COUNT([2] + [3]) AS Expr32, COUNT([2] + [4]) AS Expr33,
> COUNT([2] + [5]) AS Expr34,
>                COUNT([2] + [6]) AS Expr35,COUNT([2] + [7]) AS Expr36, COUNT([2]
> + [8]) AS Expr37, COUNT([2] + [9]) AS Expr38,
>                COUNT([2] + [10]) AS Expr39, COUNT([2] + [11]) AS Expr40,
> COUNT([2] + [12]) AS Expr41,COUNT([2] + [13]) AS Expr42,
>                COUNT([2] + [14]) AS Expr43, COUNT([2] + [15]) AS Expr44,
> COUNT([2] + [16]) AS Expr45,COUNT([2] + [17]) AS Expr46,
>                COUNT([2] + [18]) AS Expr47, COUNT([2] + [19]) AS Expr48,
> COUNT([2] + [20]) AS Expr49,COUNT([2] + [21]) AS Expr50,
>                COUNT([2] + [22]) AS Expr51, COUNT([2] + [23]) AS Expr52,
> COUNT([2] + [24]) AS Expr53,COUNT([2] + [25]) AS Expr54,
>                COUNT([2] + [26]) AS Expr55, COUNT([2] + [27]) AS Expr56,
> COUNT([2] + [28]) AS Expr57,COUNT([2] + [29]) AS Expr58,
>                COUNT([2] + [30]) AS Expr59,
>                 COUNT ([3]) As Expr60,
>                COUNT([3] + [4]) AS Expr61, COUNT([3] + [5]) AS Expr62,
>                COUNT([3] + [6]) AS Expr63,COUNT([3] + [7]) AS Expr64, COUNT([3]
> + [8]) AS Expr65, COUNT([3] + [9]) AS Expr66,
>                COUNT([3] + [10]) AS Expr67, COUNT([3] + [11]) AS Expr68,
> COUNT([3] + [12]) AS Expr69,COUNT([3] + [13]) AS Expr70,
>                COUNT([3] + [14]) AS Expr71, COUNT([3] + [15]) AS Expr72,
> COUNT([3] + [16]) AS Expr73,COUNT([3] + [17]) AS Expr74,
>                COUNT([3] + [18]) AS Expr75, COUNT([3] + [19]) AS Expr76,
> COUNT([3] + [20]) AS Expr77,COUNT([3] + [21]) AS Expr78,
>                COUNT([3] + [22]) AS Expr79, COUNT([3] + [23]) AS Expr80,
> COUNT([3] + [24]) AS Expr81,COUNT([3] + [25]) AS Expr82,
>                COUNT([3] + [26]) AS Expr83, COUNT([3] + [27]) AS Expr84,
> COUNT([3] + [28]) AS Expr85,COUNT([3] + [29]) AS Expr86,
>                COUNT([3] + [30]) AS Expr87,
>                 COUNT ([4]) As Expr88,
>                COUNT([4] + [5]) AS Expr89,
>                COUNT([4] + [6]) AS Expr90,COUNT([4] + [7]) AS Expr91, COUNT([4]
> + [8]) AS Expr92, COUNT([4] + [9]) AS Expr93,
>                COUNT([4] + [10]) AS Expr94, COUNT([4] + [11]) AS Expr95,
> COUNT([4] + [12]) AS Expr96,COUNT([4] + [13]) AS Expr97,
>                COUNT([4] + [14]) AS Expr98, COUNT([4] + [15]) AS Expr99,
> COUNT([4] + [16]) AS Expr100,COUNT([4] + [17]) AS Expr101,
>                COUNT([4] + [18]) AS Expr102, COUNT([4] + [19]) AS Expr103,
> COUNT([4] + [20]) AS Expr104,COUNT([4] + [21]) AS Expr105,
>                COUNT([4] + [22]) AS Expr106, COUNT([4] + [23]) AS Expr107,
> COUNT([4] + [24]) AS Expr108,COUNT([4] + [25]) AS Expr109,
>                COUNT([4] + [26]) AS Expr110, COUNT([4] + [27]) AS Expr111,
> COUNT([4] + [28]) AS Expr112,COUNT([4] + [29]) AS Expr113,
>                COUNT([4] + [30]) AS Expr114,
>                 COUNT ([5]) As Expr115,
>                COUNT([5] + [6]) AS Expr116,COUNT([5] + [7]) AS Expr117,
> COUNT([5] + [8]) AS Expr118, COUNT([5] + [9]) AS Expr119,
>                COUNT([5] + [10]) AS Expr120, COUNT([5] + [11]) AS Expr121,
> COUNT([5] + [12]) AS Expr122,COUNT([5] + [13]) AS Expr123,
>                COUNT([5] + [14]) AS Expr124, COUNT([5] + [15]) AS Expr125,
> COUNT([5] + [16]) AS Expr126,COUNT([5] + [17]) AS Expr127,
>                COUNT([5] + [18]) AS Expr128, COUNT([5] + [19]) AS Expr129,
> COUNT([5] + [20]) AS Expr130,COUNT([5] + [21]) AS Expr131,
>                COUNT([5] + [22]) AS Expr132, COUNT([5] + [23]) AS Expr133,
> COUNT([5] + [24]) AS Expr134,COUNT([5] + [25]) AS Expr135,
>                COUNT([5] + [26]) AS Expr136, COUNT([5] + [27]) AS Expr137,
> COUNT([5] + [28]) AS Expr138,COUNT([5] + [29]) AS Expr139,
>                COUNT([5] + [30]) AS Expr140
> .
> .
> .  etc
> .
> .
> COUNT([60] + [60]) AS Expr1859
>
>
>
>     FROM       XXXXXXFrequencyTable
>     WHERE                 ([1] = 1) OR
>                           ([1] = 1) AND ([2] = 1) OR
>                           ([1] = 1) AND ([3] = 1) OR
>                           ([1] = 1) AND ([4] = 1) OR
>                           ([1] = 1) AND ([5] = 1) OR
>                           ([1] = 1) AND ([6] = 1) OR
>                           ([1] = 1) AND ([7] = 1) OR
>                           ([1] = 1) AND ([8] = 1) OR
>                           ([1] = 1) AND ([9] = 1) OR
>                           ([1] = 1) AND ([10] = 1) OR
>                           ([1] = 1) AND ([11] = 1) OR
>                           ([1] = 1) AND ([12] = 1) OR
>                           ([1] = 1) AND ([13] = 1) OR
>                           ([1] = 1) AND ([14] = 1) OR
>                           ([1] = 1) AND ([15] = 1) OR
>                           ([1] = 1) AND ([16] = 1) OR
>                           ([1] = 1) AND ([17] = 1) OR
>                           ([1] = 1) AND ([18] = 1) OR
>                           ([1] = 1) AND ([19] = 1) OR
>                           ([1] = 1) AND ([20] = 1) OR
>                           ([1] = 1) AND ([21] = 1) OR
>                           ([1] = 1) AND ([22] = 1) OR
>                           ([1] = 1) AND ([23] = 1) OR
>                           ([1] = 1) AND ([24] = 1) OR
>                           ([1] = 1) AND ([25] = 1) OR
>                           ([1] = 1) AND ([26] = 1) OR
>                           ([1] = 1) AND ([27] = 1) OR
>                           ([1] = 1) AND ([28] = 1) OR
>                           ([1] = 1) AND ([29] = 1) OR
>                           ([1] = 1) AND ([30] = 1) OR
>                           ([2] = 1) OR
>                           ([2] = 1) AND ([3] = 1) OR
>                           ([2] = 1) AND ([4] = 1) OR
>                           ([2] = 1) AND ([5] = 1) OR
>                           ([2] = 1) AND ([6] = 1) OR
>                           ([2] = 1) AND ([7] = 1) OR
>                           ([2] = 1) AND ([8] = 1) OR
>                           ([2] = 1) AND ([9] = 1) OR
>                           ([2] = 1) AND ([10] = 1) OR
>                           ([2] = 1) AND ([11] = 1) OR
>                           ([2] = 1) AND ([12] = 1) OR
>                           ([2] = 1) AND ([13] = 1) OR
>                           ([2] = 1) AND ([14] = 1) OR
>                           ([2] = 1) AND ([15] = 1) OR
>                           ([2] = 1) AND ([16] = 1) OR
>                           ([2] = 1) AND ([17] = 1) OR
>                           ([2] = 1) AND ([18] = 1) OR
>                           ([2] = 1) AND ([19] = 1) OR
>                           ([2] = 1) AND ([20] = 1) OR
>                           ([2] = 1) AND ([21] = 1) OR
>                           ([2] = 1) AND ([22] = 1) OR
>                           ([2] = 1) AND ([23] = 1) OR
>                           ([2] = 1) AND ([24] = 1) OR
>                           ([2] = 1) AND ([25] = 1) OR
>                           ([2] = 1) AND ([26] = 1) OR
>                           ([2] = 1) AND ([27] = 1) OR
>                           ([2] = 1) AND ([28] = 1) OR
>                           ([2] = 1) AND ([29] = 1) OR
>                           ([2] = 1) AND ([30] = 1) OR
>                           ([3] = 1) OR
>                           ([3] = 1) AND ([4] = 1) OR
>                           ([3] = 1) AND ([5] = 1) OR
>                           ([3] = 1) AND ([6] = 1) OR
>                           ([3] = 1) AND ([7] = 1) OR
>                           ([3] = 1) AND ([8] = 1) OR
>                           ([3] = 1) AND ([9] = 1) OR
>                           ([3] = 1) AND ([10] = 1) OR
>                           ([3] = 1) AND ([11] = 1) OR
>                           ([3] = 1) AND ([12] = 1) OR
>                           ([3] = 1) AND ([13] = 1) OR
>                           ([3] = 1) AND ([14] = 1) OR
>                           ([3] = 1) AND ([15] = 1) OR
>                           ([3] = 1) AND ([16] = 1) OR
>                           ([3] = 1) AND ([17] = 1) OR
>                           ([3] = 1) AND ([18] = 1) OR
>                           ([3] = 1) AND ([19] = 1) OR
>                           ([3] = 1) AND ([20] = 1) OR
>                           ([3] = 1) AND ([21] = 1) OR
>                           ([3] = 1) AND ([22] = 1) OR
>                           ([3] = 1) AND ([23] = 1) OR
>                           ([3] = 1) AND ([24] = 1) OR
>                           ([3] = 1) AND ([25] = 1) OR
>                           ([3] = 1) AND ([26] = 1) OR
>                           ([3] = 1) AND ([27] = 1) OR
>                           ([3] = 1) AND ([28] = 1) OR
>                           ([3] = 1) AND ([29] = 1) OR
>                           ([3] = 1) AND ([30] = 1) OR
>                            ([4] = 1) OR
>                           ([4] = 1) AND ([5] = 1) OR
>                           ([4] = 1) AND ([6] = 1) OR
>                           ([4] = 1) AND ([7] = 1) OR
>                           ([4] = 1) AND ([8] = 1) OR
>                           ([4] = 1) AND ([9] = 1) OR
>                           ([4] = 1) AND ([10] = 1) OR
>                           ([4] = 1) AND ([11] = 1) OR
>                           ([4] = 1) AND ([12] = 1) OR
>                           ([4] = 1) AND ([13] = 1) OR
>                           ([4] = 1) AND ([14] = 1) OR
>                           ([4] = 1) AND ([15] = 1) OR
>                           ([4] = 1) AND ([16] = 1) OR
>                           ([4] = 1) AND ([17] = 1) OR
>                           ([4] = 1) AND ([18] = 1) OR
>                           ([4] = 1) AND ([19] = 1) OR
>                           ([4] = 1) AND ([20] = 1) OR
>                           ([4] = 1) AND ([21] = 1) OR
>                           ([4] = 1) AND ([22] = 1) OR
>                           ([4] = 1) AND ([23] = 1) OR
>                           ([4] = 1) AND ([24] = 1) OR
>                           ([4] = 1) AND ([25] = 1) OR
>                           ([4] = 1) AND ([26] = 1) OR
>                           ([4] = 1) AND ([27] = 1) OR
>                           ([4] = 1) AND ([28] = 1) OR
>                           ([4] = 1) AND ([29] = 1) OR
>                           ([4] = 1) AND ([30] = 1) OR
>                           ([5] = 1) OR
>                           ([5] = 1) AND ([6] = 1) OR
>                           ([5] = 1) AND ([7] = 1) OR
>                           ([5] = 1) AND ([8] = 1) OR
>                           ([5] = 1) AND ([9] = 1) OR
>                           ([5] = 1) AND ([10] = 1) OR
>                           ([5] = 1) AND ([11] = 1) OR
>                           ([5] = 1) AND ([12] = 1) OR
>                           ([5] = 1) AND ([13] = 1) OR
>                           ([5] = 1) AND ([14] = 1) OR
>                           ([5] = 1) AND ([15] = 1) OR
>                           ([5] = 1) AND ([16] = 1) OR
>                           ([5] = 1) AND ([17] = 1) OR
>                           ([5] = 1) AND ([18] = 1) OR
>                           ([5] = 1) AND ([19] = 1) OR
>                           ([5] = 1) AND ([20] = 1) OR
>                           ([5] = 1) AND ([21] = 1) OR
>                           ([5] = 1) AND ([22] = 1) OR
>                           ([5] = 1) AND ([23] = 1) OR
>                           ([5] = 1) AND ([24] = 1) OR
>                           ([5] = 1) AND ([25] = 1) OR
>                           ([5] = 1) AND ([26] = 1) OR
>                           ([5] = 1) AND ([27] = 1) OR
>                           ([5] = 1) AND ([28] = 1) OR
>                           ([5] = 1) AND ([29] = 1) OR
>                           ([5] = 1) AND ([30] = 1)
> .
> .                         
> .   etc                         
> .                                 
>                                      ([60] = 1) AND ([60] = 1)   
>     END
Author
1 Jul 2006 6:28 AM
Omnibuzz
The way I understood...
The values in the columns 1 through 6 can have 0s or 1s.
And you want to find the count of all possible pair of columns where both
have the value 1. Its just a sample data. You can have it as all 1s or all 0s.
Did you run the code and check?


--
-Omnibuzz (The SQL GC)

http://omnibuzz-sql.blogspot.com/
Author
12 Jul 2006 10:28 AM
Charles Wang[MSFT]
Hi ,

I am interested in this issue. Would you mind letting me know the result of
the suggestions? If you need further assistance, feel free to let me know.
I will be more than happy to be of assistance.

Have a great day!

+++++++++++++++++++++++++++
Charles Wang
Microsoft Online Partner Support
+++++++++++++++++++++++++++

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

=====================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Author
3 Jul 2006 2:42 AM
Charles Wang[MSFT]
Hi,
Thanks for your response.

The proc_selcount is a custom function that can count any one or two
columns equaling 1.
However this name is not canonical, you can specify the name according to
your standard.
+++++++++++++++++++++++++++
Charles Wang
Microsoft Online Partner Support
+++++++++++++++++++++++++++

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

=====================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
Author
13 Jul 2006 5:00 AM
Doug
normalization.

you need a new paradigm to store your data.

you will fight and fight and fight this data model forever. bite the
bullet, and get some help in storing your data in an easier way.
Author
13 Jul 2006 10:01 AM
Chris Lim
Doug wrote:
> normalization.
>
> you need a new paradigm to store your data.
>
> you will fight and fight and fight this data model forever. bite the
> bullet, and get some help in storing your data in an easier way.

Hi,

Are you aware of the Usenet etiquette of quoting at least some of the
post you're replying to? It's very useful, especially if you're
responding to a post that is several days old.

Chris
Author
31 Aug 2006 1:15 AM
onecorp
Perhaps as an alternative, I could use a DAL / create a table adapter
/ and use code along the lines of that detailed below.

(Unfortunately, I can't get it to work yet as it has a type cast error in
the line:

num3 = "SUM (columnA + columnB) As Expr"

The dataset contains columns : Id , [1] , [2], [3] .....[30]
For the purposes of the iteration, I do not need the Id column.
The other columns are of data type smallint and contain either 1 or null.

Is someone able to point me in the right direction?

Thank you)

????


Imports MyDataSet

Imports System.Data.SqlClient
Imports System.Data.Sql



Partial Class Default5
    Inherits System.Web.UI.Page


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load

        Dim pairsAdapter As New MWFNTableAdapters.AMFNFTableAdapter
        Dim pairs As MWFN.AMFNFDataTable

        pairs = pairsAdapter.GetData

        Dim myColumns As Data.DataColumnCollection = pairs.Columns
        Dim columnA As Data.DataColumn
        Dim columnB As Data.DataColumn
        Dim num3 As Integer


        For Each columnA In myColumns
            If columnA IsNot "Id" Then
                For Each columnB In myColumns
                    If columnB IsNot "Id" Then
                        num3 = "SUM (columnA + columnB) As Expr"
                    End If
                Next
            End If
        Next

        Dim table1()() As Integer = New Integer(29)() {}
        Dim myColumnHeaders As Integer
        For myColumnHeaders = 0 To 29
            table1(myColumnHeaders) = New Integer(num3 + 1) {}
        Next myColumnHeaders


    End Sub



Any suugestions would be appreciated.

Onecorp


Show quote
"Chris Lim" wrote:

> Doug wrote:
> > normalization.
> >
> > you need a new paradigm to store your data.
> >
> > you will fight and fight and fight this data model forever. bite the
> > bullet, and get some help in storing your data in an easier way.
>
> Hi,
>
> Are you aware of the Usenet etiquette of quoting at least some of the
> post you're replying to? It's very useful, especially if you're
> responding to a post that is several days old.
>
> Chris
>
>

AddThis Social Bookmark Button