AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Vereinfachen

Ein Thema von Medium · begonnen am 16. Feb 2012 · letzter Beitrag vom 17. Feb 2012
Antwort Antwort
Seite 2 von 2     12   
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: SQL Vereinfachen

  Alt 17. Feb 2012, 10:34
Ausgehend von deiner Ergebnismenge in #8:


Select zielbehaelter, count(zielbehaelter)
From (DerSelectDerDeineErgebnismengeLiefert)
Group By zielbehaelter
Having count(zielbehaelter) = (SelectDerDieAnzahlAnZutatenLiefert)

Ist arg konstruiert und wenig elegant, aber sollte die Ergebnisliste liefern.
Ralph
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: SQL Vereinfachen

  Alt 17. Feb 2012, 09:53
Das Problem scheint wohl doch komplexer zu sein als ich gestern noch im guten Glauben annahm. Fast alle Lösungen leiden unter dem selben Problem: Ich erhalte eine Liste aller Zielbehälter, die von jedem Rohstoff einzeln erreicht werden können, wobei ich gerne wüsste welche Ziele von allen Rohstoffen gleichsam erreicht werden können. Was ich leicht bekomme ist also..


Im Ergebnis sieht man, dass Behälter 130 als einziger von allen Rohstoffen erreicht werden kann, und genau diesen suche ich! (Es kann generell durchaus mehrere Ziele geben bei manchen Rezepturen.)
Das Problem ist vielleicht auch, dass Du die Aufgabenstellung nicht präzise formulierst- bis jetzt. Was bedeutet denn "kann auch mehrere"? Kann sein, dass es die gibt, interessiert mich aber nicht?
Ich will jeden einzelnen Zielbehälter, der geht (Sonst wird es ja keine Liste)?
..
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: SQL Vereinfachen

  Alt 17. Feb 2012, 12:09
Die Division wäre vielleicht was für dich.
Ich habe mal versucht, das in SQL umzusetzen:
SQL-Code:
SELECT DISTINCT Behälternummer, Behältername FROM beh WHERE (Behälternummer, Behältername) not in
   (SELECT
      Behälternummer, Behältername
   FROM
      beh, rezpos
   WHERE
      Rezeptnummer = :rn
      and Typ = 1
      and (Behälternummer, Behältername, Rohstoff) not in
         (SELECT
            a.Behälternummer, a.Behältername, c.Rohstoff
         FROM
            beh as a, qundz as b, beh as c
         WHERE
            a.Behältername = b.Ziel
            and b.Quelle = c.Behälternummer)
   )
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQL Vereinfachen

  Alt 17. Feb 2012, 12:52
@Medium:
Zitat:
@haentschman: Die DB ist nicht perfekt, aber durchaus gut strukturiert.
Die Frage war allgemeiner Natur und keinesfalls gegen dich gerichtet. In der DP sind ja schon manchmal SQL Verrenkungen aufgetaucht die mit einem geänderten Design (sofern möglich) durchaus einfacher würden.

Tschuldigung wenn das falsch rüber gekommen ist...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz