Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Estrazione unica da due tabelle

    Ciao.

    Non so come risolvere questo problema.

    Ho due tabelle mysql: la tabella_A e la tabella_B

    In tabella_A è registrata l' anagrafica dei fornitori, in tabella_B viene registrata la consegna giornaliera eseguita dai fornitori presenti in tabella_A.

    Adesso mi serve estrarre con una query l'elenco dalla tabella_B dei fornitori che hanno già consegnato oggi ma anche da tabella_A l'elenco di quelli che ancora devono consegnare...

    Sono riuscito ad estrarre da tabella_B i fornitori che per oggi hanno già consegnato, ma come faccio a conoscere quelli che ancora per oggi non hanno consegnato ?

    Avete suggerimenti ?
    Grazie

  2. #2
    Mostraci la struttura delle 2 tabelle con un po di dati.

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Domenix
    Mostraci la struttura delle 2 tabelle con un po di dati.
    Grazie le tabelle sono semplici:

    tabella_A (Anagrafica):

    codice:
    IDFOR	FOR	
    1	MULTI
    2	SUPER
    3	DEVEL
    ...
    tabella_B (Consegne)

    codice:
    ID	IDFOR	FOR	DATACONSEGNA
    1	1	MULTI	2008-04-29
    2	2	SUPER	2008-04-29
    3	3	DEVEL	2008-04-29
    4	1	MULTI	2008-04-30
    5	3	DEVEL	2008-04-30
    6	1	MULTI	2008-05-02
    7	2	SUPER	2008-05-02
    Per la giornata di oggi mi servirebbe interrogare le tabelle ed avere un riepilogo del tipo:

    codice:
    IDFOR	FOR	DATACONSEGNA
    1	MULTI	2008-05-02
    2	SUPER	2008-05-02
    3	DEVEL	NULL

  4. #4
    Il campo FOR nella tabella_B è ridondante perchè contenuto già nella tabella_A
    Comunque:
    codice:
    SELECT A.IDFOR, A.FOR, B.DATACONSENGA
    FROM tabella_A A
    LEFT JOIN tabella_B B
    ON B.IDFOR = A.IDFOR
    WHERE B.DATACONSEGNA = '2008-05-02'

  5. #5
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Domenix
    Il campo FOR nella tabella_B è ridondante perchè contenuto già nella tabella_A
    Comunque:
    codice:
    SELECT A.IDFOR, A.FOR, B.DATACONSENGA
    FROM tabella_A A
    LEFT JOIN tabella_B B
    ON B.IDFOR = A.IDFOR
    WHERE B.DATACONSEGNA = '2008-05-02'
    Si è ridondante ma mi serve su delle query eseguite su altre pagine per recuperare il valore del campo FOR.

    Ad ogni modo la query che mi hai suggerito mi stampa questo:

    codice:
    IDFOR	FOR	DATACONSEGNA
    1	MULTI	2008-05-02
    2	SUPER	2008-05-02
    Invece di questo:

    codice:
    IDFOR	FOR	DATACONSEGNA
    1	MULTI	2008-05-02
    2	SUPER	2008-05-02
    3	DEVEL	NULL
    Immagino per la clausola WHERE B.DATACONSEGNA = '2008-05-02'...

  6. #6
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    Originariamente inviato da Domenix
    ...
    codice:
    SELECT A.IDFOR, A.FOR, B.DATACONSENGA
    FROM tabella_A A
    LEFT JOIN tabella_B B
    ON B.IDFOR = A.IDFOR
    WHERE B.DATACONSEGNA = '2008-05-02' OR B.DATACONSEGNA isNull
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  7. #7
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie; le tbl sono mysql IsNull mi restituisce errore di sintassi....

  8. #8
    Originariamente inviato da Mizushi
    Si è ridondante ma mi serve su delle query eseguite su altre pagine per recuperare il valore del campo FOR.

    Ad ogni modo la query che mi hai suggerito mi stampa questo:

    codice:
    IDFOR	FOR	DATACONSEGNA
    1	MULTI	2008-05-02
    2	SUPER	2008-05-02
    Invece di questo:

    codice:
    IDFOR	FOR	DATACONSEGNA
    1	MULTI	2008-05-02
    2	SUPER	2008-05-02
    3	DEVEL	NULL
    Immagino per la clausola WHERE B.DATACONSEGNA = '2008-05-02'...
    Credo di si.

  9. #9
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Domenix
    Credo di si.
    Che problema... devo estrarre dalla tabella_B il fornitore = DEVEL anche quando questo risulta che non ha consegnato x oggi....

  10. #10
    Temo che tu debba togliere la WHERE e fare un IF nel ciclo di lettura del recordset verificando che la data sia quella che ti serve. Se lo è allora la scrivi, altrimenti scrivi NULL.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.