27. Oktober 201015 j Ich habe eine Prozedur mit einfacher Abfrage die in einer Schleife läuft. --Nachlieferung declare @BelegP_ID varchar(12) --fange mit kleinster ID an set @BelegP_ID = (select min(BelegP_ID) from BelegP where Belegnummer = '001') --bis größte ID erreicht ist while @BelegP_ID <= (select max(BelegP_ID) from BelegP where Belegnummer = '003') begin declare @sql varchar (max) set @sql = 'select BELEGP_ID, Kennung, Belegtyp, Belegnummer, Hauptkennung, Posnummer, Postext, Zeilentyp, Umsatz, Menge, Eingabemenge, EditMenge, Artikelnummer, WarenCode, Bestellnummer, Bezeichnung, Zusatz, Mengeneinheit, Gewicht, Kalkulationspreis, KalkpreisEuro, Einzelpreis, Preiseinheit, Rabatt, Rabatt2, Gesamtpreis, Netto, NettoEuro, RNetto, RNettoEuro, Lagerfaktor, SteuerCode, Steuerprozent, Konto, Termin, Lager, LagerplatzID, AdressNr, Mitarbeiter, Kostenstelle, Kostentraeger, Datum, Vorgaenger, Fertigung, Verwendet, Uebernahme, Preisoptionen, AlternativPos, Status from BelegP where BelegP_ID =''' + convert(varchar(12), @BelegP_ID ) +''' ' if ((@BelegP_ID) <= (select max(BelegP_ID) from BelegP where Belegnummer = '111') and (@BelegP_ID) > (select min(BelegP_ID) from BelegP where Belegnummer = '111')) print 'union all ' else print '' --EXEC (@sql) print (@sql) set @BELEGP_ID = @BELEGP_ID +1 --ansonsten zum nächsten Mandant END Manch einer fragt sich jetzt vielleicht Warum dieses Select in einer Schleife läuft. Nur so viel: es hat natürlich einen speziellen Hintergrund, auf den ich aber mal nicht weiter eingehe. Jetzt zum eigentlichen Problem: Ziel ist es 3 (oder mehr) Selects zu einem zu verbinden via UNION ALL! Führe ich es als Print aus, ist die Abfrage grundsätzlich richtig. Mit EXEC behandelt er es aber als 3 unterschiedliche Selects und splittet es dementsprechend im Ergebnis! (könnt ihr mir folgen? ) Nun würd ich die Abfrage gerne genauso Ausführen, wie sie mit Print ausgegeben wird. Wie stell ich das an? MfG PS: MS SQL 2005
3. Januar 201115 j das problem ist schon alt aber beschäftigt mich noch! keiner eine Idee wie ich eine Proc als Gesamtes (wie es eben im Print ist) ausführen kann? :confused:
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.