Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Select case

Author  Topic 

shedoks
Starting Member

10 Posts

Posted - 2007-12-25 : 05:02:52
Hi all.

I have a problem to pull data in crosstab query. My table is

[IDTel] [int] IDENTITY(1,1) NOT NULL,
[AreaCode] [nvarchar](3) NULL,
[Mreza] [nvarchar](5) NULL,
[IDTipa] [tinyint] NULL,
[Telefon] [nvarchar](50) NULL,
[Lokal] [nvarchar](20) NULL,
[IDFirme] [int] NOT NULL,
[Glavni] [bit] NOT NULL,
[Vazeci] [bit] NOT NULL,

I want to wrote a query that for idfirme return telefon where glavni='true' (it can be only one glavni='true' for idfirme) or return max(idtel) group by idfirme if no glavni='true'

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2007-12-25 : 08:01:00
Use this:-

SELECT idfirme,COALESCE(t2.telefon,t3.MaxTel)
FROM Table t1
LEFT OUTER JOIN (SELECT idfirme,telefon
FROM Table
WHERE glavni='true') t2
ON t2.idfirme=t1.idfirme
LEFT OUTER JOIN (SELECT idfirme,MAX(idtel) AS 'MaxTel'
FROM Table
WHERE glavni='true'
GROUP BY idfirme) t3
ON t3.idfirme=t1.idfirme
Go to Top of Page
   

- Advertisement -