Ok, j'ai plus d'un million d'enregistrements et j'ai besoin de sélectionner toutes les informations de la base de données où le nombre de colonnes est supérieur ou égal à 10.À l'aide de SQL Server 2005, j'essaie de faire un HAVING dans une clause WHERE sonore fou?
Je ne peux pas utiliser les fonctions d'agrégation avec les opérateurs, ce que je veux dans le pseudo-code est
Select column1,column2,column3
From MYdatabase
Where count(column1) > 10
C'est là où je suis coincé. Dois-je utiliser une sous-requête et ajouter une colonne appelée count? Je ne suis pas sûr de savoir comment je pourrais coder cela et étant que je suis un utilisateur SQL débutant, je pourrais regarder dans la mauvaise direction.
Toute ma requête est ci-dessous, je veux modifier si c'est le cas seulement les enregistrements avec un compte (callid)> = 10 seront sélectionnés.
Select
FiscalMonthYear,
'MyCenter' = Case EP.Center
When 'Livermore Call Center' Then 'LCC'
When 'Natomas Call Center' Then 'NCC'
When 'Concord Call Center' Then 'CCC'
When 'Virtual Call Center' Then 'VCC'
When 'Morgan Hill Call Center' Then 'MHCC'
Else Center
End,
ECH.segstart,
ECH.consulttime,
EP.Queue,
(EP.MgrFName +' '+ EP.MgrLName)AS Manager,
(EP.SupFName +' '+ EP.SupLName)AS Supervisor,
(EP.RepFName +' '+ EP.RepLName)As Agent,
EP.RepPERNR,
LEFT(ECH.segstart, 19) as SegmentDateTime,
ECH.origlogin,
ECH.dialed_num,
ECH.segment,
ECH.SegStart_Date,
ECH.callid
FROM CMS_ECH.dbo.CaliforniaECH ECH
INNER JOIN CAPLESQL02.InfoQuest.dbo.IQ_Employee_Avaya_Id A ON ECH.origlogin = A.AvayaID
AND getdate() BETWEEN StartDate AND EndDate
INNER JOIN CAPLESQL02.InfoQuest.dbo.IQ_Employee_Profiles_v3 EP ON A.IQID = EP.RepID
AND getdate() BETWEEN RepToSup_StartDate and RepToSup_EndDate
AND getdate() BETWEEN SupToMgr_StartDate and SupToMgr_EndDate
AND getdate() BETWEEN RepQueue_StartDate and RepQueue_EndDate
INNER JOIN Cal_RemReporting.dbo.udFiscalMonthTable f on ECH.SegStart_Date = f.Tdate
Where dialed_num not like '______'
AND dialed_num not like ''
AND dialed_num not like '_______'
and EP.Center is NOT Null
and EP.Center not like 'Comm Ops'
and EP.Center not like 'Same Day Group'
and MgrLName not like 'Hollman'
and consulttime > 0
and ECH.SegStart_Date between getdate()-90 and getdate()-1
and EP.Queue not IN ('BST','Collections', 'DST','DSR','Escalations','Cable Store')
je me suis résolu le problème en utilisant une requête de jonction interne qui sélectionne le 10 haut et se joint à l'ensemble des données sur la colonne de dialed_num. Fonctionne parfaitement, merci à tous pour votre aide!
Nous vous remercions de votre aide! Ajouter cela en bas de la requête génère cette erreur: La sous-requête a renvoyé plus de 1 valeur. Ceci n'est pas autorisé lorsque la sous-requête suit =,! =, <, <= , >,> = ou lorsque la sous-requête est utilisée comme une expression. – CodingIsAwesome
Mon erreur de modification maintenant. –
Modifié - veuillez voir la correction. –