Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst ROW-NUMBER über UNION Select

Mitglied: Solardub

Solardub (Level 1) - Jetzt verbinden

08.02.2019 um 15:59 Uhr, 164 Aufrufe, 6 Kommentare

MSSQL 2008:
Ich hatte vorher eine Abfrage, nun brauche ich zwei Select's die mit UNION gemeinsam abgefragt werden.

Dazu verwendete ich im Select auch Row_Number um eine fortlaufende Nummer zu bekommen.
Diese Nummer brauch ich als eindeutige Zahl für ID und BSNR

Leider beginnt die Nummerierung ab dem zweiten Select wieder am Anfang.

SET @BSNR = @Monat+RIGHT(@Jahr,2)+'0000'
select
CAST((@BSNR+(ROW_NUMBER() over(order by GLN))) AS CHAR(7))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID
,(@BSNR+(ROW_NUMBER() over(order by GLN))) AS BSNR
, Artikelnummer
, Menge
, GLN
from view_BSMenge
where KZ='A'

UNION

select
CAST((@BSNR+(ROW_NUMBER() over(order by GLN))) AS CHAR(7))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID
,(@BSNR+(ROW_NUMBER() over(order by GLN))) AS BSNR
, Artikelnummer
, Menge
, GLN
from view_BSMenge
where KZ='Z'

Hat jemand eine Idee wie ich die Nummerierung über beide Abfragen fortlaufend bekommen kann??

THX, Solardub
Mitglied: akretschmer
08.02.2019, aktualisiert um 16:39 Uhr
sicher.


01.
test=*# select 'q1'||s::text from generate_series(1,6) s union all select 'q2'||s::text from generate_series(1,8) s;
02.
 ?column? 
03.
----------
04.
 q11
05.
 q12
06.
 q13
07.
 q14
08.
 q15
09.
 q16
10.
 q21
11.
 q22
12.
 q23
13.
 q24
14.
 q25
15.
 q26
16.
 q27
17.
 q28
18.
(14 rows)
19.

20.
test=*# select *, row_number() over() from (select 'q1'||s::text from generate_series(1,6) s union all select 'q2'||s::text from generate_series(1,8) s) bla;
21.
 ?column? | row_number 
22.
----------+------------
23.
 q11      |          1
24.
 q12      |          2
25.
 q13      |          3
26.
 q14      |          4
27.
 q15      |          5
28.
 q16      |          6
29.
 q21      |          7
30.
 q22      |          8
31.
 q23      |          9
32.
 q24      |         10
33.
 q25      |         11
34.
 q26      |         12
35.
 q27      |         13
36.
 q28      |         14
37.
(14 rows)
38.

39.
test=*#
Bitte warten ..
Mitglied: MadMax
08.02.2019 um 17:27 Uhr
Seltsame Begrüßung, aber Dir auch ein freundliches MSSQL 2008:,

Du brauchst gar kein union, die Abfragen sind ja gleich, bis auf die Kennzeichen. Reicht also, wenn Du Deine Bedingung anpaßt:
select
CAST((@BSNR+(ROW_NUMBER() over(order by GLN))) AS CHAR(7))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID
,(@BSNR+(ROW_NUMBER() over(order by GLN))) AS BSNR
, Artikelnummer
, Menge
, GLN
from view_BSMenge
where KZ in ('A', 'Z')

Gruß, Mad Max
Bitte warten ..
Mitglied: Solardub
11.02.2019 um 08:54 Uhr
Hi Mad Max!

Ups, da hab ich wohl die Begrüßung übersehen, aber hier nochmal ein offizielles "Hallo" an alle

Die zwei Select's wurden doch noch um einiges erweitert und die Bedingungen unterscheiden sich nun komplett, aber von der Struktur bleiben Sie gleich, somit kann ich es mit UNION verbinden.
Bitte warten ..
Mitglied: Solardub
11.02.2019, aktualisiert um 08:58 Uhr
@akretschmer
ok, sieht komplex aus, aber werde ich gleich mal testen!
Bitte warten ..
Mitglied: MadMax
LÖSUNG 11.02.2019 um 19:38 Uhr
Moin Solardub,

Du kannst Deine komplette Abfrage mit einer Klammer umschließen und dann in der From-Klausel wie eine Tabelle nutzen. Wichtig ist noch, daß Du Deiner neuen "Tabelle" noch einen Namen gibst, hier habe ich es einfach mal t genannt.
Die ID kannst Du bei den Einzelabfragen dann weglassen, oder mit in die endgültige ID verwursten.

01.
SET @BSNR = @Monat+RIGHT(@Jahr,2)+'0000'
02.

03.
select	row_number () over (order by irgendwas) as ID_Gesamt, *	
04.
from	(select
05.
	CAST((@BSNR+(ROW_NUMBER() over(order by GLN))) AS CHAR(7))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID
06.
	,(@BSNR+(ROW_NUMBER() over(order by GLN))) AS BSNR
07.
	, Artikelnummer
08.
	, Menge
09.
	, GLN
10.
	from view_BSMenge
11.
	where KZ='A'
12.
	
13.
	UNION
14.
	
15.
	select
16.
	CAST((@BSNR+(ROW_NUMBER() over(order by GLN))) AS CHAR(7))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID
17.
	,(@BSNR+(ROW_NUMBER() over(order by GLN))) AS BSNR
18.
	, Artikelnummer
19.
	, Menge
20.
	, GLN
21.
	from view_BSMenge
22.
	where KZ='Z') t
Gruß, Mad Max
Bitte warten ..
Mitglied: Solardub
12.02.2019 um 15:13 Uhr
Danke, Mad Max!

Habe einfach meine ersten beiden Zeilen in den ersten Select hochkopiert und funktioniert wunderbar.

Select CAST((@BSNR+(ROW_NUMBER() over(order by lm_kst))) AS CHAR(8))+(SUBSTRING((RIGHT(@Jahr,2)), 1, 2)) AS ID,
(@BSNR+(ROW_NUMBER() over(order by lm_kst))) AS BSNR, *
From (select
, Artikelnummer
......
......) t
Bitte warten ..
Ähnliche Inhalte
CSS
Row gleich hoch
Frage von pcguyCSS10 Kommentare

Hallo zusammen, ich habe eine Frage betreffend bootstrap row. Ich habe folgende Einteilung: Die Bilder sind responsive, da sie ...

JavaScript
Jquery: Validation for Child-Row
Frage von LorderichJavaScript1 Kommentar

Hallo zusammen, irgendwie hänge ich gerade an einem Problem fest. Ich erstelle über das Jquery Plugin Datatables eine Tabelle ...

Festplatten, SSD, Raid
Unterschied SNapshot row und cow ?
gelöst Frage von TastuserFestplatten, SSD, Raid3 Kommentare

Guten Abend! Ich verstehe den Unterschied der Arten von einem Snapshot nichtkann mir das einer bitte genau erklären ? ...

Batch & Shell
Powershell Select
gelöst Frage von shwatsonBatch & Shell5 Kommentare

Hallo Community! Zu meinem Problem, ich habe mir ps1 und eine txt Datei erstellt, und versuche nun mit der ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Tipp von ChriBo vor 9 StundenFirewall

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 1 TagInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 1 TagGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 1 TagGoogle Android2 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung21 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

DSL, VDSL
Neuer Glasfaser Anschluss - IPv4-Adressraum
Frage von norre2000DSL, VDSL12 Kommentare

Hallo Zusammen, ich werde meinen Glasfaser Anschluss wechseln und bin beim Ausfüllen des Antrags auf Fragen gestoßen bei denen ...

Internet
Aktuell HP-Support-Seite kaputt?
gelöst Frage von LochkartenstanzerInternet12 Kommentare

Hallo Kollegen, Weiß einer von euch, seit wann die HP-Support-Seite kaputt ist? ) Wollte heute morgen Druckertreiber runterladen und ...

Ubuntu
Exchange Alternative auf Ubuntu
Frage von TELLOUbuntu11 Kommentare

Hi NG, wir müssen für unsere Kleine Firma (5 User) das Email / Kalendersystem neu einrichten. Ich könnte jetzt ...