wyłuskanie numeru wiersza z bazy SQL Server (2008-2014)

wyłuskanie numeru wiersza z bazy SQL Server (2008-2014)
AH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam
Pragnę się przywitać jako nowy użytkownik forum oraz baz danych.
Piszę niewielki programik korzystający z Sql Servera. Mam problem z napisaniem zapytania zwracającego AdresID z poniższej tabeli przy uwzględnieniu danych wejściowych z programu w postaci zmiennych.
Przykładowa tabela:

AdresID KontrahentID
1 1
2 1
3 2
4 2
5 2
6 3
7 3

Interesowałoby mnie zapytanie mające następująca postać:

Select AdresID from Adresy
where KontrahentID = @numerkontrahenta AND numerWiersza = @numerWiersza;

Przykładowo kontrahent nr 2 ma 3 adresy i chciałbym zwrócić AdresID z wiersza 3 dla tego kontrahenta który wynosi 5. Dzięki za ewentualne wskazówki i pomoc

pozdrawiam

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1

nie ma czegoś takiego jak numer wiersza. Masz tam id adresu i tego się trzymaj. W SQLu NIGDY nie operuj numerem wiersza czy kolumny. To w jakiej kolejności dane są zwrócone nie jest wartością stałą

BTW na przyszłość nie SQL Server (bo każda baza to SQL Server) tylko MSSQL - to jest poprawna nazwa

AH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Poniższe zapytanie rozwiązuje mój problem

Kopiuj
with grupujWiersze as
(
	Select Adres.AdresID, kontrahentID,
	ROW_NUMBER() OVER (PARTITION by kontrahentID ORDER BY AdresID) as 'numerWiersza'
	from Adres
	)
	select AdresID from grupujWiersze
	where numerWiersza = 3 AND KontrahentID = 2;

woolfik dzięki za linka

pozdr

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.