Welcome to Sign in | Help
in Search

script de SELECT cu GROUP BY sql server 2000

Last post 07-06-2007, 9:59 PM by Alex. 6 replies.
Sort Posts: Previous Next
  •  07-06-2007, 4:20 PM 2210

    script de SELECT cu GROUP BY sql server 2000

    salut...am si eu o problema cat se poate de urgenta cu selectul asta :(

    select companyname,cnt,x.LeadId from
    (select count(companyname) cnt, companyname,LeadId
    from (select * from LeadBase where statecode = 0)y
    group by companyname)x
    where x.cnt > 1

    el acum afiseaza eroarea:

    Server: Msg 8120, Level 16, State 1, Line 1
    Column 'y.LeadId' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


     pentru ca LeadId nu este in group by.....si nici nu vreau sa-l bag.....am nevoie de el doar sa mi-l afiseze.....cum evit asta...sa ma lase sa rulez scriptul fara sa-l bag in group by

    multumesc mult.

     sa explic si altfel ca  poate nu e de ajuns pt a intelege problema

    am aceasta tabela "LeadBase " in care am ceva de genul

    LeadID           CompanyName

    1xd                proepa

    23d                proepa

    56d                stizomat

    eu vreau sa fac un select care sa-mi intoarca LeadID,CompanyName pentru acelea ca "proepa" deci count grupate dupa companyname sa fie >1....deci duplicate dupa Companyname

  •  07-06-2007, 4:56 PM 2211 in reply to 2210

    Re: script de SELECT cu GROUP BY sql server 2000

    cred ca ceva de genul ....dar nu sunt sigur

    select distinct A.LeadID,A.CompanyName from LeadBase A
    join  LeadBase B on A.CompanyName = B.CompanyName and A.LeadID <> B.LeadID
    where A.statecode = 0 and A.Companyname is not null
    order by A.CompanyName asc

  •  07-06-2007, 5:01 PM 2212 in reply to 2211

    Re: script de SELECT cu GROUP BY sql server 2000

    Incearca

    SELECT t.LeadID, t.CompanyName
    FROM Table_1 t JOIN
    (SELECT CompanyName
    FROM Table_1
    GROUP BY CompanyName
    HAVING COUNT(CompanyName) > 1) x ON t.CompanyName = x.CompanyName

    *Table1 este tabelul "cu pricina".

    Ai indecsi pe acest tabel? Mie mi-a mers mai repede cu un "primary key" pe LeadID si un index pe CompanyName. 

  •  07-06-2007, 5:14 PM 2213 in reply to 2212

    Re: script de SELECT cu GROUP BY sql server 2000

    am facut asa pana la urma

    select distinct A.LeadID,A.CompanyName from LeadBase A
    join  LeadBase B on A.CompanyName = B.CompanyName and A.LeadID <> B.LeadID and A.statecode = 0  and A.deletionstatecode = 0 and B.statecode = 0 and B.deletionstatecode = 0
    where A.Companyname is not null
    order by A.CompanyName asc

    sunt sigur ca exista si o varianta mai simpla(a ta....dar cu niste conditii in plus)....dar sper macar asta sa fie buna....si pe urma o modific pe a ta

    multumesc mult.

    alex.

     

  •  07-06-2007, 5:24 PM 2214 in reply to 2212

    Re: script de SELECT cu GROUP BY sql server 2000

    nu e bun nici al meu nici al tau....ii lipseste ceva....inca imi mai intoarce greseli....leadID pentru alt Companyname....nu inteleg cum poate :(

     

  •  07-06-2007, 7:45 PM 2215 in reply to 2214

    Re: script de SELECT cu GROUP BY sql server 2000

    Care este "supararea"?
  •  07-06-2007, 9:59 PM 2216 in reply to 2215

    Re: script de SELECT cu GROUP BY sql server 2000

    nu mai e nici o suparare....scuze ca am raspuns asa tarziu dar abia acum am reusit sa scap de "probleme" :)

    "problema" pleaca de la faptul ca am importat in baza de date mai multe ori aceleasi date (CompanyName)....cheia pe tabela respectiva fiind pe LeadID (ceea ce ma face sa ma gandesc daca ar trebui si CompanyName sa-l fac unic cumva....dar asta e cu totul altceva in caz ca-l mai import si alta data sa nu ma lase)....asa, cum ziceam am importat de mai multe ori aceste date si acum aveam duplicate in tabela dupa CompanyName.....am vrut sa fac acest select care-mi intoarce duplicatele dupa aceasta coloana pentru a face un UPDATE pe ele....intr-o coloana "Duplicat" bit.....e o bifa pentru a vedea in aplicatie care se repeta si care nu.....nu am vrut sa le sterg pentru ca sunt importate din fisiere diferite si vreau sa le combin datele ("merge") unele avand completate coloanele "telefon" de exemplu altele "mail" altele "adresa"

    m-am speriat aiurea.....am avut impresia gresita ca nu-mi intoarce ce trebuie....se pare ca functioneaza ok asa:

    select distinct A.LeadID,A.CompanyName from LeadBase A
    inner join  LeadBase B on A.CompanyName = B.CompanyName 
                                    and A.LeadID <> B.LeadID
                                    and A.statecode = 0
                                    and A.deletionstatecode = 0
                                    and B.statecode = 0
                                    and B.deletionstatecode = 0
    where A.Companyname is not null
    order by A.CompanyName asc

    multumesc mult pentru ajutor ........ prompta ca de obicei ;)

    alex.

View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems