Excel e gli applicativi Microsoft Office Connessione a tabella SQL con dati limitati da celle excel

LoginRegistrati
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
  • Autore
    Articoli
  • #16708 Risposta

    Enrico Benso

      Buongiorno a tutti,

      dovrei eseguire l'estrazione di dati provenienti da un Db SQL.

      Nell'esempio qui di seguito riporto la stringa di connessione che inserisco nelle "proprietà dei dati esterni":

      SELECT R.SITE_ID AS 'SITO', R.INVOICE_ID AS 'PROTOCOLLO', REPLACE(CONVERT(CHAR(11),R.INVOICE_DATE,103),'','-') AS 'DATA_FATTURA',
      R.CUSTOMER_ID AS 'CLIENTE', C.NAME AS 'RAGIONE_SOCIALE', C.SIC_CODE AS 'COD. SIC', C.IND_CODE AS 'COD. AIC',
      R.DESCRIPTION AS 'TIPO_FATTURA', R.TERMS_DESCRIPTION AS 'PAGAMENTO', A.DESCRIPTION AS 'CONTO RICAVO',
      R.CURRENCY_ID AS 'DIVISA', L.AMOUNT AS 'IMPONIBILE', L.VAT_AMOUNT AS 'IVA', L.VAT_CODE AS 'COD.IVA', C.COUNTRY AS 'STATO',
      C.TERRITORY AS 'TERRITORIO', R.BUY_RATE AS 'CAMBIO', C.TERRITORY AS 'TERRITORIO2', C.MARKET_ID AS 'MERCATO'
      FROM ACCOUNT A, CUSTOMER C, RECEIVABLE R, RECEIVABLE_LINE L
      WHERE R.CUSTOMER_ID = C.ID AND R.INVOICE_ID=L.INVOICE_ID AND L.GL_ACCOUNT_ID=A.ID
      AND ((R.INVOICE_DATE BETWEEN '01/01/2010' AND '31/12/2020')) AND A.TURNOVER_INCLUDED='Y'
      ORDER BY R.POSTING_DATE

      Per evitare di estrarre centinaia di migliaia di record vorrei sostituire le date che limitano l'estrazione (in rosso nell'esempio sopra riportato) con dei richiami a celle Excel (ad esempio nella cella A1 e A2).

      In questo modo l'utente che lavora sul file inserisce le date che vuole (ad esempio dal 1/1/2019 al 31/1/2019) e la connessione carica su Excel solo i record di quel periodo rendendo più "snello" il tutto.

       

      Come si potrebbe risolvere?

      Grazie in anticipo a tutti

      Buona giornata

       

       

      #16721 Risposta
      albatros54
      albatros54
      Moderatore
      • Sfida #2
        37 pts

        Non sono molto ferrato in SQL , pero potresti assegnare il valore delle celle che contengono le date di confronto ad una variabile, e nella clausola WHERE , al posto delle date , potresti inserire le variabili.Comunque, se fai una ricerca sul forum ,c'è se non ricordo male, qualche post che parla delle date proprio in SQL.

         

        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
        Sempre il mare, uomo libero, amerai!
        ( Charles Baudelaire )
        #16730 Risposta

        Anonimo
          1 pt

          Confermo quanto scritto da @albatros54.

          aggiungo però che nella query le date vanno formattate nel formato americano MM/DD/YYYY che è il default di quasi tutti i database (incluso SQL Server).
          Per cui la parte:

          BETWEEN '01/01/2010' AND '31/12/2020'

          dovrà diventare:

          BETWEEN '01/01/2010' AND '12/31/2020'

          Di solito ci si aiuta con la funzione Format(), compatibile anche con SQL Server.

           

        LoginRegistrati
        Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
        Rispondi a: Connessione a tabella SQL con dati limitati da celle excel
        Gli allegati sono permessi solo ad utenti REGISTRATI
        Le tue informazioni:



        vecchio frac - 2388 risposte

        albatros54
        albatros54 - 670 risposte

        patel
        patel - 541 risposte

        Marius44
        Marius44 - 448 risposte

        Luca73
        Luca73 - 432 risposte