Announcement

Collapse
No announcement yet.

Brauche Hilfe bei einer kleinen Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Brauche Hilfe bei einer kleinen Abfrage

    Hallo Leute,

    komme aus dem Saarland und heiße David. Habe ein kleines Problem ..

    Ich habe ein Feld mit Artikelmengen. In Abhängigkeit dieses Feldes würde ich gerne eine Liste von 1 bis n erhalten, wofür gilt:

    n = Aufgerundet(Artikelmenge * 1000)

    Wenn also eine Artikelmenge von 1500 vorliegt, soll das Ergebnis:
    1
    2

    sein.
    Bei einer Artikelmenge von 3798:
    1
    2
    3
    4

    Das Problem an der Sache: Es muss eine simple Abfrage sein - kein Transact .. (arbeite mit SQL Server 2008 - jedoch gleichzeitig mit einer separaten Software, welche die Transact Sachen nicht richtig verarbeitet).

    Ein Ranking selbst hinzubekommen ist nicht das Problem .. - aber naja .. bekomme das Gesamtpaket nicht hin.
    Jemand Tipps ?
    Danke im Voraus

  • #2
    Gilt für dich eine rekursive CTE noch als einfache Abfrage?

    Beispieltabelle
    [Highlight=SQL]CREATE TABLE [dbo].[Artikel](
    [ArtikelID] [int] IDENTITY(1,1) NOT NULL Primary Key,
    [Artikelmenge] [bigint] NOT NULL)
    [/Highlight]

    Abfrage
    [Highlight=SQL]WITH RangedArtikel AS(
    SELECT ArtikelID, Artikelmenge, 1 as [Range]
    FROM Artikel
    UNION ALL
    SELECT ArtikelID, Artikelmenge, [Range] + 1
    FROM RangedArtikel
    WHERE Artikelmenge > ([Range] * 1000))

    Select * from RangedArtikel
    order by ArtikelID, [Range][/Highlight]

    Comment


    • #3
      Ui, funktioniert soweit super .. gute Idee.
      Leider übernimmt die separate Software den Query nicht komplett .. (der gesamte With-Block wird nach Bestätigen von OK herausgenommen und nur die letzte Select Anweisung bleibt bestehen - sehr unsinnig).

      Comment


      • #4
        Kannst du das Ding als View in die Datenbank packen? Da sollte deine Software dann kein Problem mehr mit haben.

        Comment


        • #5
          An sich ja .. das Problem ist nur, dass ich in den Query Variablen einbauen muss, welche die Software verwaltet - innerhalb einer View jedoch nicht arbeitet ..

          Comment


          • #6
            Dann eine Stored Function der du die Variablen mitgeben kannst.
            [Highlight=SQL]select * from meineLiebeStoredFunction('Variable1', 'Variable2')[/Highlight]

            Aber was sind das für Variablen die man nicht von außen an einen View dranschrauben kann?

            Comment


            • #7
              Das mit der SP könnte funktionieren.
              Och, das ist so ein Knaup-Produkt auf Access-Basis ... da werden Variablen direkt in den im Programm hinterlegten SQL Query hinterlegt. Würde man die in eine View packen, wären die Variablen jedoch nicht aufgelöst und der SQL Server könnte nix mit ihnen anfangen (die werden bei der Abfrage erst aufgelöst .. ) - naja, lange Rede, kurzer Sinn .. das mit den SP dürfte funktionieren und werde ich bald testen - danke

              Comment


              • #8
                Mit einer SP wird das so nicht funktionieren, weil man eine stored proc mit EXEC storedProc Param1, Param2, ... aufruft und nicht einfach ein select * from storedProc machen kann. Dazu musst du eine sogenannte "benutzerdefinierte Inlinefunktion" verwenden, damit geht's (siehe Beispiel aus Link).

                bye,
                Helmut

                Comment

                Working...
                X