Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Abfrage irgendwie filtern

Frage Entwicklung Datenbanken

Mitglied: ThePinky777

ThePinky777 (Level 1) - Jetzt verbinden

13.11.2013, aktualisiert 09:24 Uhr, 1631 Aufrufe, 4 Kommentare

Hallo,

ich habe folgendes Problem und irgendwie bin ich zu doof dafür ich gebs ja zu.

also ich will eine SQL Abfrage machen, ich beschreib mal das Problem:

Rechnungen_Table

Hier hol ich entsprechend eine Rechnung raus (Datum), da bekomme ich 2 Sachen mit denen ich weitere Tables verknüpfe:
Kundennummer ->> verknüpft mit Kunden_Table
ArtikelNummer (der verkauft wurde) ->> verknüpft mit ArtikelPreisliste_Table

Kunden_Table
hier bekomm ich raus welcher Kundengruppe er angehört, was wiederum verknüpft ist mit ->> Kundengruppe_Table

Kundengruppe_Table:
Hier bekommt man raus welche Preislisten für den Kunden hinterlegt sind.
Preisliste ->> ArtikelPreisliste_Table


Wie wir sehen kommen wir hier auf zwei wegen auf die ArtikelPreiliste_Table.
Hier kann man sich vorstellen sind für jeden Artikel sagen wir mal ca. 10 Preislisten hinterlegt.

Ich will nun aber den Basispreis des Artikels rausbekommen und nur die Preise gemäß den Preislisten die für den Kunden aktuell sind.

Frage:
geht das überhaupt das man so doppelt gemoppelt in einer SQL Abfrage auf ein Table sich verknüpfen kann ?
Anderer seits hab ich das Problem das eben alle Preislisten Preise des Artikels gelistet werden und nicht nur der Kundengruppe entsprechende Preislisten.
Mit verknüpfen mein ich leider das es so grafisch ist, und kein direkter SQL Code, da das system leider so grafisch basierend arbeitet (ERP).
Es gibt das die möglichkeit eben tables zu verknüpfen mit table1.feld1 = table2.feld1 oder man kann so Kriterien noch einstellen (denke mal Filter).
Oder man kann dann direkt noch davon unabhängige filter verwenden um die anzeige des ergebnisses einzugrenzen, z.B.
table.rechnungsdatum >= StartDatum (das man festlegt) und table.rechnungsdatum <= EndDatum (das man festlegt) als parameter.
ist so ähnlich denk ich mal wie crystal reports was das grafische angeht.

wäre dankbar wenn jemand tips hat oder seiten wo man das ganze nachlesen könnte.

das problem ist eigentlich das ich etwas liste und das ergebnis quasi in der selben abfrage aus nem anderen table entsprechend rausfilter möchte.
mit vbs oder php hab ich das immer so gelost das ich eine sql abfrage 1 gemacht hab, damit ne schleife mit entsprechend dynamisch generierter sql abfrage nummer 2 (aus dem ergebnis der ersten abfrage) und beliebig wiederholt um am ende die gefilerten ergebnisse zu erziehlen. aber das muss ja irgendwie auch direkt gehen, und hier hab ich keine möglichkeit so aussenrum zu scripten
Mitglied: certifiedit.net
13.11.2013 um 09:28 Uhr
Hallo,

wenn ich dich richtig verstanden habe brauchst du nur einen Join. Infos bräuchte man aber dennoch (SQL Server gibt es viele ;) )

LG,

Christian
Bitte warten ..
Mitglied: SlainteMhath
13.11.2013 um 09:40 Uhr
Moin,

Ich nehme an den Support des ERP Herstellers zu befragen steht nicht zur Debatte, oder?

Ansonsten ist deine Frage 1. recht verworren und 2. fehlen essentielle Infos (Welches ERP? Welcher SQL? usw...)

Grundsätzlich kann man auf (fast) jeden SQL Server die gleiche Tabelle mehrmals in einem SELECT verwerden
Etwa so:
01.
  
02.
SELECT * FROM Tabelle as tab1 
03.
LEFT JOIN Tabelle2 as tab 2 on tab1.id = tab2.id 
04.
....
lg,
Slainte
Bitte warten ..
Mitglied: ThePinky777
13.11.2013, aktualisiert um 09:57 Uhr
Hallo,

also ich versuchs so genau wie möglich zu erklären.

die datenbank läuft auf nem Server 2008 R2 Enterprise, SQL Server 2008.

Aber die Abfrage wird im ERP System selbst erstellt mit so nem Editor, keine Möglichkeit direkt Code einzugeben.
Es gibt eine Lasche namens "Phase Erstellen" und da kann ich die Tables reinpflanzen auf die ich bock hab und sie mit pfeilen verknüpfen mit entsprechenden kriterien.
so
dann generiert er nen Code (kann man aber nicht direkt editieren nur durch klicki bunti leider), keine Ahnung ob dich das weiter bringt, Oben hab ichs nur vereinfacht beschrieben, in wirklichkeit hängen noch einige weitere tables mit dran, daher nicht erschrecken wenn man den code sieht.

for each InvcDtl no-lock , each Part no-lock where (InvcDtl.Company = Part.Company and InvcDtl.PartNum = Part.PartNum ) , each InvcHead no-lock where InvcHead.Posted = True And InvcHead.InvoiceDate >= {FromDate} And InvcHead.InvoiceDate <= {ToDate} , each Customer no-lock where (InvcHead.Company = Customer.Company and InvcHead.CustNum = Customer.CustNum ) , each SalesRep no-lock where (Customer.Company = SalesRep.Company and Customer.SalesRepCode = SalesRep.SalesRepCode ) , each SalesTer no-lock , each ProdGrup no-lock , each PartCost no-lock , each CustGrup no-lock , each TaxRgn no-lock , each PriceLstParts no-lock , each CustGrupPriceLst no-lock where (CustGrupPriceLst.ListCode = PriceLstParts.ListCode ) where (InvcDtl.Company = InvcHead.Company and InvcDtl.InvoiceNum = InvcHead.InvoiceNum ) where (Customer.Company = SalesTer.Company and Customer.TerritoryID = SalesTer.TerritoryID ) where (Part.Company = ProdGrup.Company and Part.ProdCode = ProdGrup.ProdCode ) outer-join where (Part.PartNum = PartCost.PartNum ) where (Customer.Company = CustGrup.Company and Customer.GroupCode = CustGrup.GroupCode ) where (Customer.Company = TaxRgn.Company and Customer.TaxRegionCode = TaxRgn.TaxRegionCode ) where (CustGrup.Company = CustGrupPriceLst.Company and CustGrup.GroupCode = CustGrupPriceLst.GroupCode ) where (Part.Company = PriceLstParts.Company and Part.PartNum = PriceLstParts.PartNum ).


Das ERP System heißt Epicor. und dafür bekommt man keinen Support, wenn dann nur nen Consultant der nach Stunden verrechnet wird... da das ja eine customization ist. naja und ich würds halt auch gern mal kapieren dumm sterben sollen andere
Bitte warten ..
Mitglied: certifiedit.net
13.11.2013 um 10:11 Uhr
Zitat von ThePinky777:
Das ERP System heißt Epicor. und dafür bekommt man keinen Support, wenn dann nur nen Consultant der nach Stunden
verrechnet wird... da das ja eine customization ist. naja und ich würds halt auch gern mal kapieren dumm sterben sollen
andere

Dann wäre eine Schulung das richtige für dich.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...