Keine Duplikate ohne DISTINCT

Schilli

Neuer Benutzer
Beiträge
3
Hallo zusammen,
ich weiß nicht ob ich in diesem Datenbankserver richtig bin, aber ich versuche es einfach mal.
Eine Firma hat für meine Firme eine Art Datenbankseite programmiert. Ich wollte mir nun daraus über SQL einen Report erstellen. Allerdings bin ich auf das Hinderniss gestoßen, dass die Firma anscheinend nicht alle SQL Befahle in die Programmierung der Seite mit einbezogen/zugelassen hat. Weiß jemand eine Möglichkeit, wie ich aus einer Liste die Duplikate entfernen kann ohne SELECT DISTINCT zu verwenden?
 
Werbung:
Ich weiß es ist Freitag aber du drückst dich wirklich sehr vage aus...

Ist die "Datenbankseite" vielleicht eine View? Mit was erstellst du den bzw. in welcher Form liegt dir diese vor? Grundsätzlich können alle SQL Varianten auch DISTINCT und das lässt sich in eine View auch nachträglich einbauen bzw. kann man es auch in der Abfrage auf die View selbst noch verwenden. Es ist also nicht klar warum DISTINCT nicht verwendet werden kann/soll.
 
Das klingt ungewöhnlich - ich denke nicht, dass da jemand eine SQL-Engine selbst gebaut hat und nur das DISTINCT weggelassen... Kannst du dein SELECT statement posten, vielleicht ist da nur ein versteckter Fehler drinnen?
Wenn das nicht geht, bleibt dir wohl nichts anderes übrig als die Duplikate mit einer Programmiersprache deiner Wahl außerhalb von SQL zu entfernen.
 
Das ist schwierug zu erklären, zumindest für mich (*entschildige*). Das ist eine XML, die beinhaltet Tabellen, die zum Einen von Hand und zum Anderen mit Werten "gefüttert" wird, welche über Typescript von anderen Rechnern automatisch eingelesen werden.

Für den Report wird die Datenbank zunächst mit einem xmlns Ausdruck angesprochen, dann wird über css der style definiert und dann folgt die SQL (denke ich zumindest)

So sieht dann der Ausdruck aus (bei den Klassen habe ich nur den Namen der Firma wegge*)

<pages>
<page header="header1" footer="footer1" class="body=" topmargin="5cm">
<table>
<row>
<cell class="***">Sample</cell>
<cell class="***">Test</cell>
<cell class="***">CompletedOn</cell>
</row>
<db:for-each-linq>
<db:parameters>
<db:parameter name=":p0" select="arguments[0].value" />
</db:parameters>
<db:statement><![CDATA[
from r in Results where r.Test.Sample.OrderId == _p0 && r.Test.Cancelled == false && r.Test.Deleted != true && r.Test.Sample.Deleted != true
orderby r.Test.Name

select new
{
SName = r.Test.Sample.Name,
TName = r.Test,
CompOn = r.Test.CompletedOn
}

]]></db:statement>
<row>
<cell class="***-report-cell" width="3">
<db:value-of select="SName" />
</cell>
<cell class="***-report-cell" width="3">
<db:value-of select="TName" />
</cell>
<cell class="***-report-cell" width="3">
<db:if test="CompOn != null">
<db:value-of select="CompOn.Value.ToString(&quot;dd.MM.yyyy&quot;)" />
</db:if>
</cell>
</row>
</db:for-each-linq>
</table>
</page>
</pages>

Da nun zu jedem Test mehrere einzelne Results gehören habe ich dann ganz oft untereinander die gleiche Sample, Test und CompletedOn stehen. Das möchte ich nun auf einmal reduzieren. Doch wenn ich nach dem select das distinct anfüge meckert das System auf einmal.
 
Werbung:
Also SQL Fragmente sind ja sichtbar. Ich habe es noch nie benutzt, aber vielleicht läuft es über LINQ. Das XML Fragment ist jedenfalls deutlich mehr als eine SQL Kapselung. Und ja, wenn eine Zwischenschicht drin hängt, die das parst und weiterverarbeitet, dann kann man wahrscheinlich nicht jedes X-beliebige XML dort reinkippen. Dünnes Eis.



Eine Firma hat für meine Firme eine Art Datenbankseite programmiert.
Ich sehe den Ansatzpunkt eher dort. Einfach mal "eine Firma" fragen, wie man das machen würde. Und ob die Gewährleistung erhalten bleibt, wenn man das macht oder was es kosten würde, das machen zu lassen.
Nicht krum nehmen, aber ob man sich sowas in Indien machen lässt oder von irgendeinem "Freelancer" Wurm. Es geht ständig um zu teuer, für "so wenig". Vielleicht hat man auch gerade seine halbe IT entlassen, wegen der billigen Inder. Vielleicht kann man sich das, was man bestellt hat / haben will auch einfach nicht leisten. Und günstige Foren gibt es natürlich auch ...
Selbst wenn man es technisch hinbekommt, kann hier auch niemand sagen, ob die Abfrage das liefert, was Du glaubst, dass sie liefert.
Am Ende setzt Du kommerzielle Software ein, sowohl für Deine Individuallösung an sich, als auch für die Infrastruktur darunter. Es gibt Profis, die sowas supporten, mit Garantie und Supportvertrag, wenn nötig.
 
Zurück
Oben