karkenau 11 Geschrieben 8. September 2015 Melden Teilen Geschrieben 8. September 2015 Hallo zusammen, ich würde gerne folgende Abfragen zu einer Abfrage zusammenführen: Abfrage a) SELECT VBSVORDT, VBSVORZT, VBSARTTX, VBSHNDKL, VBSURSLD, VBSPALMG, VBSPMENG, VBSFPMNG, VBSLGANR, arttx, VBSKUNNR, KUNNAME, VBSFOLNR, VBSFOLET, VBSKISZT, VBSECKL, VBSSANID, VBSSANKI FROM tbl_VBSjoin tbl_KUN on tbl_kun.KUNNR = tbl_vbs.VBSKUNNRjoin tbl_ART on tbl_art.ARTNR = tbl_vbs.VBSLGANR where VBSADRNR = '005256' AND convert(datetime,convert(char(10),VBSVORDT,104)) between convert(datetime,convert(char(10),getdate(),104)) and dateadd(dd,0,getdate()) Abfrage B) SELECT PARLFD2 as FolNr, PARINHA1 as FolTxt FROM view_PAR where KEYIPAR1 like 'EVARFFOLIENNUMMER%' Wie stelle ich das sinnvoll an? Danke für Eure Hilfe! karkenau Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 8. September 2015 Melden Teilen Geschrieben 8. September 2015 Keine Ahnung. Anhand der Abfragen kann man keine Gemeinsamkeit erkennen. Wenn Du eine findest: JOIN ist Dein Freund. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 8. September 2015 Melden Teilen Geschrieben 8. September 2015 Die zweite Abfrage basiert wohl auf einer View, da mußt Du an die View ran und schauen ob Du das mit in die erste Abfrage kriegst. Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 9. September 2015 Autor Melden Teilen Geschrieben 9. September 2015 Die Gemeinsamkeit ist folgende: In der zweiten Tabelle der zweiten Abfrage gibt es eine Spalte, die da heißt PARLFD2 welcher der Spalte VBSFOLET aus der ersten Abfrage entspricht. Ich hatte schon mal versucht die beiden mit JOIN zusammenzubringen, bin aber daran gescheitert, das nicht jede Zeile verwendet werden darf, sondern nur jene, welche die Bezeichnung "EVARFFOLIENNUMMER%" in der Spalte "KEYIPAR1" tragen. Hilft das weiter? Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 9. September 2015 Melden Teilen Geschrieben 9. September 2015 Wenn Du PARLFD2 mit VBSFOLET gejoined hats, kannst Du doch immer noch ein Where mit "EVARFFOLIENNUMMER%" anhängen... Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 10. September 2015 Autor Melden Teilen Geschrieben 10. September 2015 (bearbeitet) Also so der join so? join tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLET und das where dann in den SELECT? Sorry für die Anfängerfrage, aber ich arbeite nicht jeden Tag mit MSSQL. Ok, ich habe es jetzt wie folgt gelöst: join tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLETwhere KEYIPAR1 like 'EVARFFOLIENETIKET%' aber was mach ich wenn ich im Feld tbl_par.parlfd2 noch Werte haben, die im Feld "KEYIPAR1 mit "EVARFFOLIENNUMMER%" als Schlüssel haben? bearbeitet 10. September 2015 von karkenau Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 15. September 2015 Autor Melden Teilen Geschrieben 15. September 2015 Niemand ne Idee? Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 15. September 2015 Melden Teilen Geschrieben 15. September 2015 ... die im Feld "KEYIPAR1 mit "EVARFFOLIENNUMMER%" als Schlüssel haben? ... einfach ein OR KEYIPAR1 like 'EVARFFOLIENNUMMER%' anhängen (OR, AND, siehe Onlinehilfe): join tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLET where KEYIPAR1 like 'EVARFFOLIENETIKET%' OR KEYIPAR1 like 'EVARFFOLIENNUMMER%' Sollte allerdings 'EVARFFOLIENNUMMER%' eine feste Zeichenkette sein, so solltest Du statt "like" lieber "=" benutzen ("like" funktioniert hier aber auch). Gruß Kai Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 16. September 2015 Autor Melden Teilen Geschrieben 16. September 2015 Guten Morgen, aber was mache ich, wenn KEYIPAR1 like 'EVARFFOLIENNUMMER%' ist, das aber im Join nicht "tbl_vbs.VBSFOLET passt sondern dann zu "tbl_vbs.VBSFOLNR" gehören müsste? Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 16. September 2015 Melden Teilen Geschrieben 16. September 2015 Moin, z.B. eine zweite Abfrage (mit anderem JOIN) mit gleichem Spaltenlayout machen und beide Abfragen dann mit UNION (siehe Onlinehilfe) verknüpfen. Gruß Kai Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 16. September 2015 Autor Melden Teilen Geschrieben 16. September 2015 Ok, ich habe jetzt diese Abfrage gebastelt: SELECT VBSFOLNR, PARINHA1,VBSFOLET,PARINHA1 FROM tbl_VBSjoin tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLNR where KEYIPAR1 like 'EVARFFOLIENETIKET%' union SELECT VBSFOLNR, PARINHA1,VBSFOLET,PARINHA1 FROM tbl_VBSjoin tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLETwhere KEYIPAR1 like 'EVARFFOLIENETIKET%' Sie funktioniert auch, zeigt mir im Feld PARINHA1 jedoch zweimal das gleiche Ergebnis, was jedoch nicht das ist, was ich möchte, sondern in möchte beim ersten PARINHA1 das haben, was unter "EVARFFOLIENETIKET%" steht und beim zweiten PARINHA1 das was unter "EVARFFOLIENETIKET%" steht. Geht das auch irgendwie? Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 26. September 2015 Melden Teilen Geschrieben 26. September 2015 (bearbeitet) Das sieht von der Struktur her schonmal gut aus. Nur als Tipp: - Betrachte jedes SELECT Statement für sich und bewerte das Ergebenis - kontrolliere nochmal den JOIN (evtl. Copy-Paste Fehler) - kommen die Daten aus der jeweils richtigen Spalte - kontrolliere den WHERE String, oben hast du noch von 'EVARFFOLIENNUMMER%' gesprochen, der taucht hier aber nicht mehr auf. Gruß Kai bearbeitet 26. September 2015 von hh2000 Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 28. September 2015 Autor Melden Teilen Geschrieben 28. September 2015 Du hast natürlich recht, klarer Tippfehler von mir...die Abfrage hätte so aussehen müssen: SELECT VBSFOLNR, PARINHA1,VBSFOLET,PARINHA1 FROM tbl_VBSjoin tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLNR where KEYIPAR1 like 'EVARFFOLIENNUMMER%'union SELECT VBSFOLNR, PARINHA1,VBSFOLET,PARINHA1 FROM tbl_VBSjoin tbl_par on tbl_par.parlfd2 = tbl_vbs.VBSFOLETwhere KEYIPAR1 like 'EVARFFOLIENETIKET%' Aber auch diese Abfrage bringt mir leider nicht das Ergebnis das ich erwarte...in beiden Feldern PARINHA1 steht das gleiche Ergebnis, was aber nicht sein kann, weil natürlich bei EVARFFOLIENETIKET% etwas anderes drin steht als bei EVARFFOLIENNUMMER%. Gibt es noch Ideen? Zitieren Link zu diesem Kommentar
karkenau 11 Geschrieben 30. September 2015 Autor Melden Teilen Geschrieben 30. September 2015 Keine Idee irgendjemand? Zitieren Link zu diesem Kommentar
ukulele 11 Geschrieben 9. Oktober 2015 Melden Teilen Geschrieben 9. Oktober 2015 (bearbeitet) Also ich verstehe den Thread nur in etwa bis Post #4, ich glaube du suchst das: SELECT VBSVORDT, VBSVORZT, VBSARTTX, VBSHNDKL, VBSURSLD, VBSPALMG, VBSPMENG, VBSFPMNG, VBSLGANR, arttx, VBSKUNNR, KUNNAME, VBSFOLNR, VBSFOLET, VBSKISZT, VBSECKL, VBSSANID, VBSSANKI, PARLFD2 AS FolNr, PARINHA1 AS FolTxtFROM tbl_VBSJOIN tbl_KUNON tbl_kun.KUNNR = tbl_vbs.VBSKUNNRJOIN tbl_ARTON tbl_art.ARTNR = tbl_vbs.VBSLGANRLEFT JOIN view_PARON VBSFOLET = view_PAR.PARLFD2AND view_PAR.KEYIPAR1 LIKE 'EVARFFOLIENNUMMER%'WHERE VBSADRNR = '005256'AND convert(datetime,convert(char(10),VBSVORDT,104)) BETWEEN convert(datetime,convert(char(10),getdate(),104)) AND dateadd(dd,0,getdate()) bearbeitet 9. Oktober 2015 von ukulele Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.