Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi richtige bedingung für meine sql abfrage ?? (https://www.delphipraxis.net/35646-richtige-bedingung-fuer-meine-sql-abfrage.html)

stonimahoni 10. Dez 2004 09:00


richtige bedingung für meine sql abfrage ??
 
hi leute

hab mal wieder ein problem :(

ich hab mir ne sql abfrage gebastelt aber bekomm den letzten entscheidenen punkt nicht zustande :(

anbei mal der code :
SQL-Code:
SELECT DISTINCTROW auftrag.Wgr, auftrag.TatGarantie, Sum(auftrag.Gesamtkostrep) AS [Summe von Gesamtkostrep], Sum(auftrag.Gesamtkostrep) AS [summe von garantie2], Sum(auftrag.Gesamtkostrep) AS [summe von kulanz], Sum(auftrag.Gesamtkostrep) AS [summe von kulanz2]
FROM auftrag
GROUP BY auftrag.Wgr, auftrag.TatGarantie
HAVING (((auftrag.TatGarantie)="garantie" Or (auftrag.TatGarantie)="garantie2" Or (auftrag.TatGarantie)="kulanz" Or (auftrag.TatGarantie)="kulanz2"));

und nun das eigentliche problem :
ich bekomme (noch) bei allen summen jeweils die gleichen zahlen angegeben
ich hätte aber gern dass ich in der spalte "Summe von Gesamtkostrep" nur die summe von "garantie" angezeigt bekomme. in der spalte von "summe von garantie2" nur die summe von "garantie2" usw.

in der spalte tatgarantie werden mit halt die einzelnen fälle angezeigt : garantie, garantie2 , kulanz und kulanz2
in der spalte "Summe von Gesamtkostrep" möchte ich nun die summe einer warengruppe angezeigt bekommen die die tatgarantie "garantie" hat und nix anderes

ihr versteht ? ( muss mir also nen filter basteln )
kurz als beschreibung nebenher :
ich hab mehrere warengruppen und nach denen wird geordnet. so und nun habe ich eine bestimmte warengruppe und möchte von dieser im fall garantie die summe der ganzen garantiefälle sehen und keine anderen ( also dort soll dann nicht noch garantie2 usw ) angezeigt werden.

alles doof so zu erklären - sry

hoffe ihr könnt mir nen tipp geben

weil meine versuche in access im abfragenentwurf sind bisher kläglich gescheitert :(


mfg

stoni

Jelly 10. Dez 2004 09:06

Re: richtige bedingung für meine sql abfrage ??
 
Dieser Teil deiner Abfrage
SQL-Code:
select ... Sum(auftrag.Gesamtkostrep) AS [Summe von Gesamtkostrep], Sum(auftrag.Gesamtkostrep) AS [summe von garantie2], Sum(auftrag.Gesamtkostrep) AS [summe von kulanz], Sum(auftrag.Gesamtkostrep) AS [summe von kulanz2]...
macht ja überhaupt keinen Sinn, da es 4 mal das Gleicher ergibt...

Wenn du also nur über Tatgarantie="Garantie" die Summe bilden willst, dann musst du in deinem "having" Teil, auch nur die über "Garantie" filtern. Also lass mal die "OR" Bedingung dort weg.

stonimahoni 10. Dez 2004 09:26

Re: richtige bedingung für meine sql abfrage ??
 
hmmmm

wie gesagt ich hatte gestern alles mögliche probiert und das war der letzte stand der dinge als ich aufgehört habe

ich versuchs mal anders zu erklären :
ich habe 6 spalten - 1.) warengruppe 2.) tatgarantie 3.) summe von garantie 4.) summe von garantie2 5.) summe von kulanz 6.) summe von kulanz2

so ...jetzt mcöhte ich mir in der spalte 3 die summe der warengruppe 678 z.b. anzeigen lassen wo diese warengruppe halt in der tabelle in der spalte "tatgarantie" den wert "garantie" hat

und in der spalte summe von garantie2 möchte ich das ganze in grün - sprich er soll mir in meinem bsp zur warengruppe 678 die summe aller in der tabelle hinterlegten werte anzeigen bei denen die tatgarantie den wert "garantie2" hat und sonst keine werte.


kann gut sein dass ich die sql abfrage komplett neu aufbauen muss.
aber ich suche den richtigen ansatz dazu.


mfg

stoni

Jelly 10. Dez 2004 09:40

Re: richtige bedingung für meine sql abfrage ??
 
Zitat:

Zitat von stonimahoni
kann gut sein dass ich die sql abfrage komplett neu aufbauen muss.
aber ich suche den richtigen ansatz dazu.

Oder deine gesamte Tabellenstruktur. Ich glaub nicht daß du so dein Ziel erreichst.

Das Problem bei dir ist, daß du viele Spalten hast, wo deine Zahlenwerte drin stehen, du aber in SQL nur zeilenweise filtern und gruppieren kannst. Ich weiss also bei deiner Struktur so keine Lösung.

wenn du aber eine getrennte Tabelle machst mit einer Spalte "Wert float" und einer Spalte "Sparte int", könnt die Abfrage über die 2 Tabellen funktionieren. Was du da also machst, ist statt deine Werte in Spalten auszudehnen, du jetzt über Zeilen verfährst, und eine 1:n Beziehung zwischen deinen 2 Tabellen herstellst.

Hasse 10. Dez 2004 09:51

Re: richtige bedingung für meine sql abfrage ??
 
stoni sein Problem ist glaub ich, dass er mit der Abfrage das Feld gesamtkostrep in Teilsummen nach den genannten Bedingungen auf die Spalten aufteilen will. Das funktioniert so nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz