Radiance
Legacy Member
Hi allemaal,
Ik probeer een query te maken op SQL 2005 waar ik in essentie een subquery zou moeten kunne draaien op 2 kolommen, wat blijkbaar niet kan in SQL Server.
Even de situatie schetsen, in sterk vereenvoudige vorm ziet mijn tabel er zo uit :
Voorbeeld van de inhoud zou kunnen zijn :
Misschien helpt het als ik er een beetje context aan geef, het gaat om een tabel met telefoongesprekken. Rijen waar zowel RouterCallKeyDay en RouterCallKey dezelfde zijn, zijn aan elkaar gerelateerd. Nu wil ik alle gerelateerde rijen ophalen als een van de call legs (gesprekken) aan mijn WHERE clause voldoet.
Voorbeeld van de query die ik in gedachten had.
Het idee van de bovenstaande query is dus dat ie de eerste 3 records ophaalt omdat in de 3e de DNIS 5000 is en de eerste 3 records dezelfde RouterCallKeyDay + RouterCallKey hebben. Maar dat kan blijkbaar niet in SQL Server (krijg een syntax fout op de komma in de WHERE clause).
Heeft iemand enige suggesties hoe ik dit kan oplossen ?
Je kon het waarschijnlijk al raden, maar ik kan het schema niet aanpassen en ik kan eigenlijk enkel met een SELECT werken.
Laat het gerust weten als ik de situatie verder kan verduidelijken.
Ik probeer een query te maken op SQL 2005 waar ik in essentie een subquery zou moeten kunne draaien op 2 kolommen, wat blijkbaar niet kan in SQL Server.
Even de situatie schetsen, in sterk vereenvoudige vorm ziet mijn tabel er zo uit :
Code:
CREATE TABLE [dbo].[Termination_Call_Detail](
[RouterCallKeyDay] [dbo].[DBINT] NULL,
[RouterCallKey] [dbo].[DBINT] NULL,
[RouterCallKeySequenceNumber] [dbo].[DBINT] NULL
[ANI] [varchar](32) NULL,
[DNIS] [varchar](32) NULL
Voorbeeld van de inhoud zou kunnen zijn :
Code:
VALUES (1,1, 1, '2000', '3000')
VALUES (1,1, 2, '2000', '')
VALUES (1,1, 3, '2000', '5000')
VALUES (1,2, 1, '2200', '3000')
VALUES (3,1, 1, '2300', '4000')
VALUES (3,1, 2, '2300', '')
Misschien helpt het als ik er een beetje context aan geef, het gaat om een tabel met telefoongesprekken. Rijen waar zowel RouterCallKeyDay en RouterCallKey dezelfde zijn, zijn aan elkaar gerelateerd. Nu wil ik alle gerelateerde rijen ophalen als een van de call legs (gesprekken) aan mijn WHERE clause voldoet.
Voorbeeld van de query die ik in gedachten had.
Code:
SELECT Termination_Call_Detail.*
FROM Termination_Call_Detail
WHERE
(RouterCallKeyDay, RouterCallKey) IN
(
SELECT RouterCallKeyDay, RouterCallKey
FROM Termination_Call_Detail
WHERE DNIS = '5000'
)
Het idee van de bovenstaande query is dus dat ie de eerste 3 records ophaalt omdat in de 3e de DNIS 5000 is en de eerste 3 records dezelfde RouterCallKeyDay + RouterCallKey hebben. Maar dat kan blijkbaar niet in SQL Server (krijg een syntax fout op de komma in de WHERE clause).
Heeft iemand enige suggesties hoe ik dit kan oplossen ?
Je kon het waarschijnlijk al raden, maar ik kan het schema niet aanpassen en ik kan eigenlijk enkel met een SELECT werken.
Laat het gerust weten als ik de situatie verder kan verduidelijken.

.