Neu einfache SQL Verknüfpung zweier Tabellen, z.B. Artikel mit ArtikelBeschreibung 1.6.46.1

WebFischer

Gut bekanntes Mitglied
4. Mai 2016
102
11
Hallo,

wir nutzen JTL Wawi 1.6.46.1

Ich möchte beispielsweis gerne

dbo.tArtikel

dbo.tArtikelBeschreibung

miteinander verknüpfen.

Meine SQL Abfrage bringt mir da gerade leider kein Ergebnis, diese sieht wie folgt aus :

"
SELECT
TOP(1) *
FROM dbo.tArtikel
INNER JOIN dbo.tArtikelBeschreibung ON dbo.tArtikelBeschreibung.kArtikel = dbo.tArtikel.kArtikel
"

Ich stehe gerade auf dem Schlauch wieso ich hier kein Ergebnis erhalte, hat da jmd. eine Idee und kann mir unterstützend unter die Arme greifen?

Besten Dank vorab.
 
Zuletzt bearbeitet:

mvh

Sehr aktives Mitglied
26. Oktober 2011
1.150
443
Die Abfrage ist richtig.
Aber vielleicht hast Du mehrere Mandanten ? Falsche Datenbank ausgewählt ?
SQL:
 USE eazybusiness
 SELECT TOP(10) * 
 FROM dbo.tArtikel LEFT JOIN dbo.tArtikelBeschreibung
 ON tArtikel.kArtikel=tArtikelBeschreibung.kArtikel
 

WebFischer

Gut bekanntes Mitglied
4. Mai 2016
102
11
Dubious; Wenn ich nur eine reine SQL SELECT Abfrage ohne JOIN (gleich welcher Spielart) mache bekomme ich problemlos Ergebnisse angezeigt
 

WebFischer

Gut bekanntes Mitglied
4. Mai 2016
102
11
z.B.:
{% capture query %}
SELECT DISTINCT
TOP 2 *
FROM
Beschaffung.lvEinkaufsliste
{% endcapture -%}

Sobald aber weitere Einschränkungen wie z.B.:

LEFT JOIN dbo.tArtikel ON Beschaffung.lvEinkaufsliste.kArtikel = dbo.tArtikel.kArtikel

hinzukommt bleibt mein SQL Query ohne Ergebnis.

Die Queryabfrage lautet:

"
{% assign result = query | DirectQuery %}

{%for item in result.Daten%}
{{item.kArtikel}}, {{item.cName}} ,{{item.cHinweis}}, {{item.cArtNr}}, {{item.kArtikelEinkaufsliste}}
{%endfor-%}
"
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
1.150
443
z.B.:
{% capture query %}
SELECT DISTINCT
TOP 2 *
FROM
Beschaffung.lvEinkaufsliste
{% endcapture -%}

Sobald aber weitere Einschränkungen wie z.B.:

LEFT JOIN dbo.tArtikel ON Beschaffung.lvEinkaufsliste.kArtikel = dbo.tArtikel.kArtikel

hinzukommt bleibt mein SQL Query ohne Ergebnis.

Die Queryabfrage lautet:

"
{% assign result = query | DirectQuery %}

{%for item in result.Daten%}
{{item.kArtikel}}, {{item.cName}} ,{{item.cHinweis}}, {{item.cArtNr}}, {{item.kArtikelEinkaufsliste}}
{%endfor-%}
"
Kein Wunder, kArtikel und auch andere Felder sind nicht eindeutig.
Bitte hier kein "*" verwenden, sondern nur benötigte Felder: tArtikel.kArtikel, tArtikel.cArtNr, usw.
 
  • Gefällt mir
Reaktionen: WebFischer

WebFischer

Gut bekanntes Mitglied
4. Mai 2016
102
11
Durch die SQL Select Abfrage und den Query Übertrag wird ja in DotLiquid ein Array erzeugt, korrekt?
Dieses Array frage ich derzeit nur einmal nach bestimmten Einträgen, z.B. kArtikel, ab, oder irre ich da?
 

WebFischer

Gut bekanntes Mitglied
4. Mai 2016
102
11
Oder anders formuliert:

Wie kann ich die zwei Tabellen mittels SQL SELECT + Join miteinander verknüpfen sodass ich mir danach eine Ausgabe über bestimmte Tabelleneinträge schreiben kann?
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
830
304
Hi,

wie die anderen schon geschrieben haben - wenn es die gleichen Spaltennamen wie zb kArtikel in beiden Tabellen gibt, funktioniert es nicht.
Daher am Besten vorher die konkreten Spalten auswählen und dann zeigt er es auch in der Schleife über das Array korrekt an:
SQL:
SELECT DISTINCT TOP 2
    dbo.tArtikel.kArtikel,
    Beschaffung.lvEinkaufsliste.cName,
    Beschaffung.lvEinkaufsliste.cHinweis,
    dbo.tArtikel.cArtNr,
    Beschaffung.lvEinkaufsliste.kArtikelEinkaufsliste
FROM
    Beschaffung.lvEinkaufsliste
    LEFT JOIN dbo.tArtikel ON Beschaffung.lvEinkaufsliste.kArtikel = dbo.tArtikel.kArtikel

Viele Grüße
Mirko
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: WebFischer

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
SELECT
TOP(1) *
FROM dbo.tArtikel
INNER JOIN dbo.tArtikelBeschreibung ON dbo.tArtikelBeschreibung.kArtikel = dbo.tArtikel.kArtikel
Da du dein Problem mittlerweile ja schon gelöst hast (habe den ganzen Weg zu deiner Lösung jetzt allerdings nicht mehr so genau gelesen), hier nur noch eine Anmerkung zum INNER JOIN:
Ein Inner Join enthält nur Datensätze, die in beiden Tabellen, also links und rechts existieren.
Wenn also z.b. im Bezug auf deine ursprgl. Abfrage ein Artikel keine Beschreibung hat und es somit in tArtikelBeschreibung keinen Eintrag mit passendem kArtikel gibt, dann würde ein Inner Join ein leeres Ergebnis haben.
 

Ähnliche Themen