Announcement

Collapse
No announcement yet.

Ist Runden bei Local SQL-Abfragen möglich ?

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

  • Ist Runden bei Local SQL-Abfragen möglich ?

    Hallo zusammen,<p>
    kann man bei der Abfrage von Paradox-Tabellen Runden ?<br>

    Dieses Beispiel: <b>SELECT Round(MyFeldFloat, 2) FROM MyTable </b>
    funktioniert <b>nicht</b><p>
    <b>Hilfe ...<b><p>
    Viele Grüße Tom ...

  • #2
    Hallo,

    welches Ziel soll erreicht werden, wo werden die gerundeten Daten benötigt? In Local SQL kann man über <b>CAST</b> die Datentypen konvertieren und somit indirekt runden.
    &#10

    Comment


    • #3
      Hallo Andreas,<p>

      Im Feld <b>a.VKNSchn</b> wird vorher auch über SQL-Statements der Durchschnitt berechnet (Feldtyp MONEY). Ein Datensatz enthält den kritischen Wert 12.795 für das Feld a.VKNSchn - im DB-Explorer wird 12.98 angezeigt (soweit auch korrekt).<p>
      Die Tabelle AMPV enthält die Zuordnungswertebereiche in den Feldern VK_NETTO_VON and VK_NETTO_BIS<p>

      Zum Beispiel.<br>
      GrNr1: VK_NETTO_VON=1.50 VK_NETTO_BIS=12.97<br>
      GrNr2: VK_NETTO_VON=12.98 VK_NETTO_BIS=16.67<br>
      GrNr3: VK_NETTO_VON=16.68 VK_NETTO_BIS=20.00<p>

      Wenn man nun das unten aufgeführte SQL-Statement ausführt wird der Wert 12.975 <b>nicht</b> in die GrNr2 eingefügt sondern in GrNr1. Da ja gerundet werden müßte gehört er eigentlich in GrNr2 !!!<p>

      <b>Statement:</b><br>
      Select a.PZN, a.Anzahl, a.EinzelbetragSchn, a.EBplusSchn ,a.VKNSchn, a.SPSchn, a.Datum, b.GrNr<br>
      From AMPVTmp1 a LEFT OUTER JOIN AMPV b<br>
      on a.Datum between b.GUELTIGKEITSDATUM and b.UNGUELTIGKEITSDATUM AND<br>
      <b>a.VKNSchn</b> between VK_NETTO_VON and VK_NETTO_BIS<br>
      order by b.GrNr ASC
      <p>
      Habe auch noch keine Idee wie man das Problem mit CAST lösen könnte ! Ich denk aber darüber nach ...<p>
      <p>Vielleicht hast Du ja eine Lösung ...<p>
      <b>Gruß Tom ...</b&gt

      Comment


      • #4
        <b>Hallo nochmal,</B><p>

        Mit <b>Cast</B> habe ich keinen Weg gefunden aber einen anderen Workaround. Der ist zwar nicht elegant funktioniert aber.<p>
        Ich öffne vorher die Ursprungsatabelle und runde jeden einzelnen Datensatz mit der <b>Format-Funktion.</B><p>

        For I := 0 To Table.RecordCount -1 Do<br>
        begin<br><br>

        Table.Edit;<br>
        Table.FieldByName('VKNSCHN').AsFloat := StrToFloat(Format('%0.2f', [Table.FieldByName('VKNSCHN').AsFloat]));<br>
        Table.Post;<br><br>

        Table.Next;<br>

        end; // For<br>

        <b>Cya Tom ...</B&gt

        Comment

        Working...
        X