2017-07-12 5 views
0
select t1.customer_code from pbosdeposit t1,pbosinvoice t2 
inner join sap_customer t3 ON 
t3.customer_id = 
(select t4.id from customer t4 where t4.customer_code = t1.customer_code) 

Ich habe viele Möglichkeiten versucht, es zu tun, aber es zeigt immer noch Multi-Teil-Kennung konnte nicht gebunden werden. Kann jemand erklären, was bedeutet Multi-Teil-Kennung?Die mehrteilige Kennung "t1.customer_code" konnte nicht gebunden werden?

Tabellenstruktur für sap_customer

CREATE TABLE sap_customer (
    customer_id VARCHAR(32) NOT NULL PRIMARY KEY, 
    sap_cardcode VARCHAR(15), 
    void_flg SMALLINT DEFAULT 0, 
    status_ind SMALLINT DEFAULT 0, 
    err_msg VARCHAR(250), 
    last_update_by VARCHAR(32), 
    last_update_on DATETIME, 
    created_by VARCHAR(32) NOT NULL, 
    created_on DATETIME NOT NULL 
    ) 

Beispieldaten

056e322ae18b401392386c129fe49ae7 CT-000001 0 1 NULL NULL NULL 5 2017-06-30 19:03:37.427 

Tabellenstruktur für pbosinvoice

CREATE TABLE pbosinvoice(
    id VARCHAR(32) NOT NULL PRIMARY KEY, 
    inv_type VARCHAR(3), 
    inv_num VARCHAR(20), 
    inv_date DATE, 
    inv_due_date DATE, 
    customer_code VARCHAR(10), 
    customer_name VARCHAR(150), 
    payment_ind VARCHAR(1) NOT NULL, 
    org_amt DECIMAL(12,2) DEFAULT 0, 
    tax_amt DECIMAL(12,2) DEFAULT 0, 
    inv_amt DECIMAL(12,2) DEFAULT 0, 
    cleared_amt DECIMAL(12,2) DEFAULT 0, 
    void_flg SMALLINT DEFAULT 0, 
    surcharge_inv_flg SMALLINT DEFAULT 0, 
    last_update_by VARCHAR(32), 
    last_update_on DATETIME, 
    created_by VARCHAR(32), 
    created_on DATETIME 
) 

Beispieldaten

0d1c7bd169b94732b771f75c61ea2713 I01 VI17010013 24/01/2017 23/02/2017 C0001 ASIALINK CARGO & PACKING AGENCY SDN BHD F 260.00 0.00 260.00 260.00 0 NULL NULL 6 24/01/2017 11:46:42 AM 
Struktur

Tisch pbosdeposit

CREATE TABLE pbosdeposit (
    id VARCHAR(32) NOT NULL PRIMARY KEY, 
    customer_code VARCHAR(10) NOT NULL, 
    deposit_num VARCHAR(9), 
    transaction_date DATE, 
    transaction_type VARCHAR(4), 
    payment_type VARCHAR(1), 
    transaction_amt DECIMAL(10,4), 
    cleared_amt DECIMAL(10,4), 
    remarks VARCHAR(150), 
    issued_date DATE, 
    issued_bank VARCHAR(50), 
    issued_bank_location VARCHAR(100), 
    expiry_date DATE, 
    ref_num VARCHAR(20), 
    chq_num VARCHAR(20), 
    card_num VARCHAR(20), 
    card_type VARCHAR(1), 
    voided_by VARCHAR(32), 
    voided_on DATETIME, 
    last_update_by VARCHAR(32), 
    last_update_on DATETIME, 
    created_by VARCHAR(32), 
    created_on DATETIME 
) 

Beispieldaten

20e06bb857124f1cbd8ba60712aff4c5 C0001 D16110012 14/11/2016 CASH C 3000.0000 3000.0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 6 28/11/2016 7:42:05 AM 

Tabellenstruktur für Kunden

CREATE TABLE customer 
(
    id      VARCHAR(32) NOT NULL PRIMARY KEY, 
    customer_code   VARCHAR(10) NOT NULL, 
    customer_name   VARCHAR(150) NOT NULL, 
    co_reg_no    VARCHAR(15) NOT NULL, 
    tax_identification_no VARCHAR(20), 
    acc_status    VARCHAR(1) NOT NULL, 
    remarks    VARCHAR(150), 
    last_update_by   VARCHAR(32), 
    last_update_on   DATETIME, 
    created_by    VARCHAR(32) NOT NULL, 
    created_on    DATETIME NOT NULL 
) 

Beispieldaten

829yfh823f793f7f32 C0001 ASIALINK CARGO & PACKING AGENCY SDN BHD 214124 135276311515 A NULL NULL NULL - 22/09/2016 12:25:00 PM 
+0

WHERE t1.customer_code = t2.customer_code ist am Ende der Abfrage fehlt. –

+0

Immer noch mit dem gleichen Fehler t1.customer_code ist eine Multipart-Kennung – hunt

+0

Teilen Sie die Tabelle Struktur, Beispieldaten und genaue Fehlermeldung bitte –

Antwort

0

Wenn ich Ihre Anforderungen verstehe, sollten Ihre Beispieldaten keine Ergebnisse liefern. Das liegt daran, dass die einzige Zeile in der customer Tabelle einen id Wert enthält, der nicht mit der customer_id in der einzigen Zeile übereinstimmt, die Sie in der Tabelle sap_customer angegeben haben.

Ihre Anfrage ist jedoch ein Durcheinander und sollte korrekt erstellt werden (und wird hoffentlich Ergebnisse zu den tatsächlichen Daten liefern, die Sie haben).

So zuerst, erstellen und Beispieltabellen füllen: (Denken Sie daran, nur die Spalten tatsächlich in der Abfrage verwendet, andere Spalten erzeugt nur Rauschen)

CREATE TABLE sap_customer (
    customer_id VARCHAR(32) NOT NULL PRIMARY KEY 
    -- We don't cate about all the other column for this question... 
) 
INSERT INTO sap_customer (customer_id) VALUES ('056e322ae18b401392386c129fe49ae7') 

CREATE TABLE pbosinvoice (
    id VARCHAR(32) NOT NULL PRIMARY KEY, 
    customer_code VARCHAR(10) 
    -- We don't cate about all the other column for this question... 
) 
INSERT INTO pbosinvoice (id, customer_code) VALUES ('0d1c7bd169b94732b771f75c61ea2713', 'C0001') 

CREATE TABLE pbosdeposit (
    id VARCHAR(32) NOT NULL PRIMARY KEY, 
    customer_code VARCHAR(10) NOT NULL 
    -- We don't cate about all the other column for this question... 
) 
INSERT INTO pbosdeposit (id, customer_code) VALUES ('20e06bb857124f1cbd8ba60712aff4c5', 'C0001') 

CREATE TABLE customer 
(
    id      VARCHAR(32) NOT NULL PRIMARY KEY, 
    customer_code   VARCHAR(10) NOT NULL 
    -- We don't cate about all the other column for this question... 
) 
INSERT INTO customer (id, customer_code) VALUES ('829yfh823f793f7f32', 'C0001') 

Und nun die Abfrage:

select t1.customer_code 
from pbosdeposit as t1 
inner join pbosinvoice as t2 on t1.customer_code = t2.customer_code 
inner join customer as t3 on t1.customer_code = t3.customer_code 
inner join sap_customer as t4 ON t3.id = t4.customer_id 

Bitte beachten Sie, dass ich die Reihenfolge der Joins zwischen customer und sap_customer geändert habe.

Wenn der id Wert in der Tabelle customer das gleiches wie die customer_id in dem sap_customer Tisch ist (056e322ae18b401392386c129fe49ae7), ist diese Abfrage würde einen einzelnen Datensatz mit dem Wert C0001 zurückzukehren.

See a live demo on rextester

Verwandte Themen