Thanks. Yes, that is nice, but I am using D. :-) This is a good idea, though. Thanks for sharing. I could easily implement this.

Ok, so this is not possible using SQLite select, correct?


----- Original Message ----- From: "Samuel R. Neff" <[EMAIL PROTECTED]>
To: <sqlite-users@sqlite.org>
Sent: Thursday, October 11, 2007 2:28 PM
Subject: RE: [sqlite] Getting an Array or list in a select statement...



We use a custom aggregate function called DisplayList to do exactly what
you're talking about.  C# code follows.


SELECT
 U.UserName,
 DisplayList(R.RoleName)
FROM
 Users U
     INNER JOIN
 Xref_Users_Roles X
     ON
 U.UserID = X.UserID
     INNER JOIN
 Roles R
     ON
   X.RoleID = R.RoleID
GROUP BY
 U.UserName
ORDER BY
 U.UserName,
 R.RoleName

HTH,

Sam


-------------------------------------------
We're Hiring! Seeking a passionate developer to join our team building
products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]



using System;
using System.Collections.Generic;
using System.Data.SQLite;
using Cube.MasterService.Common;

namespace Cube.MasterService.Storage
{
 /// <summary>
 /// Creates a list of data from the aggregate source.
 /// </summary>
 [SQLiteFunction(Name = "DisplayList", Arguments = -1, FuncType =
FunctionType.Aggregate)]
 public class SQLiteDisplayList : SQLiteFunction
 {
   public override void Step(object[] args, int stepNumber, ref object
contextData)
   {
     if (args.Length == 0)
     {
       if (contextData == null)
       {
contextData = new ArgumentException("DisplayList requires at least
one argument.");
       }
       return;
     }

     DisplayListContext displayListContext;

     if (contextData == null)
     {
       contextData = displayListContext = new
DisplayListContext(args.Length > 1 ? DbConvert.ToString(args[1]) : ",",

args.Length > 2 ? DbConvert.ToBoolean(args[2]) : false);
     }
     else
     {
       displayListContext = (DisplayListContext) contextData;
     }

     displayListContext.Add(DbConvert.ToString(args[0]));
   }

   public override object Final(object contextData)
   {
     if (contextData == null)
     {
       return null;
     }

     if (contextData is Exception)
     {
       return contextData;
     }

     return contextData.ToString();
   }

   private class DisplayListContext
   {
     private readonly string _separator;
     private readonly bool _sort;
     private readonly List<string> _data = new List<string>();

     public DisplayListContext(string separator, bool sort)
     {
       _separator = separator;
       _sort = sort;
     }

     public void Add(string value)
     {
       _data.Add(value);
     }

     public override string ToString()
     {
       if (_sort)
       {
         _data.Sort();
       }
       return String.Join(_separator, _data.ToArray());
     }
   }
 }
}



-----Original Message-----
From: jose isaias cabrera [mailto:[EMAIL PROTECTED]
Sent: Thursday, October 11, 2007 1:48 PM
To: sqlite-users@sqlite.org
Subject: [sqlite] Getting an Array or list in a select statement...


Greetings.

So, I know that I can do a single select and get a list of the different
items found on a column, but what I would like to do is to get this same
list on another select statement.  Let me explain;

I have this select statement,

"select ProjID,
      cust,
      proj,
      PClass,
      PSubClass,
      min(bdate),
      max(ddate),
      max(edate),
      lang,
      vendor,
      sum(invoice),
      sum(ProjFund),
      sum(PMTime),
      A_No from LSOpenJobs
where ProjID = 24
AND
 (
   (bdate BETWEEN '2007-09-01' AND '2007-09-01') AND
   (ddate BETWEEN '2007-09-01' AND '2007-09-01') AND
   (edate BETWEEN '2007-09-01' AND '2007-09-01')
 )
AND
 PClass!='Quote' group by ProjID;";

And this is working fine.  However, I would like to get a list of all the
different PSubClass items found on this select statement. Can this be done
on this select or do I have to do the single select to get this item also?

thanks,

josé


----------------------------------------------------------------------------
-
To unsubscribe, send email to [EMAIL PROTECTED]
----------------------------------------------------------------------------
-


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------




-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to