webForumDet fria alternativet

Lägga till villkor

Databaser & SQL

1 svar · 343 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej

Jag har följande fråga:

SELECT [ProdNo], [Descr], [Category] =  
               CASE [ProdGr] 
               WHEN '360' THEN 'Övrigt' 
               WHEN '362' THEN 'UPS' 
               WHEN '21' THEN 'UPS' 
               WHEN '363' THEN 'Kyla' 
               WHEN '480' THEN 'Hyresaggregat' 
               ELSE '**Saknas**'
               END, 
            [Unit] = 'st', [RepProd], [NrmStc], [Inf], [Inf2], [Inf3] 
FROM [F0001].dbo.[Prod] 
WHERE [ProdGr] IN (360, 362, 363, 364, 480) 
    AND [Descr] <> '' 
    AND [Descr] NOT LIKE '%OBS%' 
    AND [Descr] NOT LIKE '%ANVÄND EJ%' 
ORDER BY [ProdNo]

Jag vill lägga till följande:

artiklar där ProdNo börjar med 'Batt' eller 'UPS och som tillhör ProdGr 21

Jag kan hämta ut frågan med följande SQL:

Select  ProdNo, Descr, Prodgr 

from [F0001].dbo.[Prod] 

         where ((prodno like 'Batt%' OR prodno like 'UPS%') AND ProdGr = 21)

Men får inte ihop den delen med huvud-sql

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#2

Så här kanske:

 SELECT [ProdNo], [Descr], [Category] =  
	CASE [ProdGr] WHEN '360' THEN 'Övrigt' 
	WHEN '362' THEN 'UPS' 
	WHEN '21' THEN 'UPS' 
	WHEN '363' THEN 'Kyla' 
	WHEN '480' THEN 'Hyresaggregat' 
	ELSE '**Saknas**'
	END, [Unit] = 'st', [RepProd], [NrmStc], [Inf], [Inf2], [Inf3] 
FROM [F0001].dbo.[Prod] 
WHERE 	(
		[ProdGr] IN (360, 362, 363, 364, 480) 
	OR 
		(ProdGr = 21 AND ([Prodno] LIKE 'Batt%' OR [Prodno] LIKE 'UPS%')) 
	)
	AND [Descr] <> ''
	AND [Descr] NOT LIKE '%OBS%' 
	AND [Descr] NOT LIKE '%ANVÄND EJ%' 
ORDER BY [ProdNo]

?

Mvh
Henrik

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)