Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Agregatna funkcija na "bit" tipu kolone?

[es] :: MS SQL :: Agregatna funkcija na "bit" tipu kolone?

[ Pregleda: 3093 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlstefanovic
Vladimir Stefanovic
Vladimirci

Član broj: 6242
Poruke: 22
*.vdial.verat.net.

Jabber: vladimir@elitesecurity.org
Sajt: dube.cjb.net


Profil

icon Agregatna funkcija na "bit" tipu kolone?03.01.2006. u 23:29 - pre 222 meseci
Recite mi neku agregatnu funkciju koja moze da radi na "bit" tipu kolone(bez akrobacija).
Hvala.
Vladimir
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Agregatna funkcija na "bit" tipu kolone?04.01.2006. u 14:16 - pre 222 meseci
SELECT
KolonaZaGrupisanje,
COUNT(bit_type_kolona) AS Brojac
FROM tvojaTabela
GROUP BY KolonaZaGrupisanje

MIN,MAX,STDEV nece da rade sa BIT tipovima, barem u verziji 2000.
 
Odgovor na temu

vlstefanovic
Vladimir Stefanovic
Vladimirci

Član broj: 6242
Poruke: 22
213.244.197.*

Jabber: vladimir@elitesecurity.org
Sajt: dube.cjb.net


Profil

icon Re: Agregatna funkcija na "bit" tipu kolone?05.01.2006. u 10:57 - pre 222 meseci
OK. Ali nisam dobro postavio pitanje. Treba mi logička funkcija koja će mi npr. dati 0 ili 1 na osnovu vrednosti svih redova.
Vladimir
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Agregatna funkcija na "bit" tipu kolone?05.01.2006. u 13:30 - pre 222 meseci
Ne razumem pitanje. Sta u stvari pokusavas?
 
Odgovor na temu

vlstefanovic
Vladimir Stefanovic
Vladimirci

Član broj: 6242
Poruke: 22
213.244.197.*

Jabber: vladimir@elitesecurity.org
Sajt: dube.cjb.net


Profil

icon Re: Agregatna funkcija na "bit" tipu kolone?07.01.2006. u 21:26 - pre 222 meseci
Jedna kolona su neke "flag" vrednosti. Hoću da vidim kada u određenom skupu redova imam bar jednu(ili sve) 0 ili 1.

Npr.:

tab1(int:kol1, bit:flag)

SELECT kol1, SUM(flag+0)-COUNT(*) rez
FROM tab1
GROUP BY kol1

onda ako je rez=0 tada su sve flag vrednosti 1, pa mi ovo SUM(... na neki način glumi logičko AND
Nije mi neophodno AND. Treba mi bilo koja logička funkcija.
Vladimir
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Agregatna funkcija na "bit" tipu kolone?10.01.2006. u 17:05 - pre 222 meseci
Ne znam sta znaci 'bez akrobacija', ali treba da pretvoris Bit u Int ili tinyInt. Upotrebi CAST ili CONVERT, otprilike ovako:
Code:
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblRadnici]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
 BEGIN
CREATE TABLE [tblRadnici] (
    [Radnik_ID] [int] NOT NULL ,
    [ID_Odeljenje] [int] NOT NULL ,
    [Plata] [money] NOT NULL ,
    [BitPolje] [bit] NULL ,
    CONSTRAINT [PK_tblRadnici] PRIMARY KEY  CLUSTERED 
    (
        [Radnik_ID]
    ) WITH  FILLFACTOR = 90  ON [PRIMARY] 
) ON [PRIMARY]
END

GO



--- tabela tblradnici
SELECT * FROM tblRadnici

Radnik_ID   ID_Odeljenje Plata                 BitPolje 
----------- ------------ --------------------- -------- 
          1            1               12.0000        1 
          2            1               15.0000        0 
          3            1                8.0000        1 
          4            1               13.0000        0 
          5            2               16.0000        1 
          6            2               12.0000        1 
          7            2               15.0000        1 
          8            2               16.0000        1 
          9            3               12.0000        0 
         10            3               10.0000        0 
         11            3                5.0000        0 
         12            3                8.0000        0 

(12 row(s) affected)

--- Brojanje redova gde je VrednostBitPolja = 1
SELECT 
    ID_Odeljenje
    , SUM(CAST ([BitPolje] AS tinyint)) AS BrojJedinica
    , COUNT (*) AS BrojRedova
FROM tblRadnici
GROUP BY ID_Odeljenje

--- Moze i ovako:
SELECT 
    ID_Odeljenje
    , SUM(CAST ([BitPolje] AS tinyint)) AS BrojJedinica
    , COUNT (*) AS BrojRedova
    , Resultat = 
        CASE 
            WHEN
                SUM(CAST ([BitPolje] AS tinyint))= COUNT (*)
                    THEN 'Sve jedinice'
            WHEN
                SUM(CAST ([BitPolje] AS tinyint))= 0
                    THEN 'Sve nule'
            ELSE cast(SUM(CAST ([BitPolje] AS tinyint)) AS varchar)+' jedinica'
        END
FROM tblRadnici
GROUP BY ID_Odeljenje

 
Odgovor na temu

[es] :: MS SQL :: Agregatna funkcija na "bit" tipu kolone?

[ Pregleda: 3093 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.