Discussione chiusa
Visualizzazione dei risultati da 1 a 5 su 5

Ordinamento date

  1. #1
    Ragazzi premetto che sono molto inesperto di SQL, vorrei chiedervi se qualcuno può aiutarmi ad impostare una query che dati i seguenti record:

    cod_mart bar_code marchio val_ult_car rag_soc qta_esistente data_ord num_ord
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 02/12/2015 14
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 05/12/2015 18
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 10/12/2015 21
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 23/12/2015 35
    1177003 8001686000430 SAICAF 1.3112 SAICAF S.P.A. 220 02/12/2015 14
    1177003 8001686000430 SAICAF 1.3112 SAICAF S.P.A. 220 05/12/2015 18
    1177003 8001686000430 SAICAF 1.3112 SAICAF S.P.A. 220 10/12/2015 21

    RISULTATO:

    1177003 8001686000430 SAICAF 1.3112 SAICAF S.P.A. 220 05/12/2015 18
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 05/12/2015 18
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 10/12/2015 21
    1177003 8001686000430 SAICAF 1.3112 SAICAF S.P.A. 220 10/12/2015 21
    1177002 80010449 SAICAF 1.5513 SAICAF S.P.A. 340 23/12/2015 35

    deve restituire le tre date più recenti, delle ultime tre date tutte le informazioni(cod_mart,barcode……..), ovviamente i fornitori (rag_soc)sono N e deve retituirli tutti.

    Questa in oracle funziona:

    SELECT * FROM (

    SELECT cod_mart,bar_code,marchio,val_ult_car,rag_soc,qta_ esistente,data_ord,num_ord
    RANK() OVER (PARTITION BY rag_soc ORDER BY data_ord) RANK

    FROM SCHEDA)

    WHERE RANK <= 3;

    Ma in SQL??
    Grazie

  2. #2
    L'avatar di nman
    nman non è in linea Topo di biblioteca
    Premesso che anche Oracle usa il linguaggio SQL .......
    Immagino che quando tu parli di SQL Intendi dire il prodotto SQL Server di Microsoft .....

    comunque quella vista che ci esponi è sostanzialmente moltissimo simile alla corrispondente di SQLServer

    Osservo che: ( sarò pignolo )

    SELECT * FROM (......
    molto, molto, molto meglio citare i campi uno per uno

    .....soc,qta_ esistente,data.....
    c'è uno spazio fra il underscore e il "esistente" mi sembra strano

    .....num_ord
    non hai messo la virgola dopo num_ord

    ......ER BY data_ord) RANK
    perché non ci metti un "AS" prima di RANK cosi da rendere evidente che si tratta di un Allias ?

    poi ci sarebbe dell'altro ma non voglio esagerare con la pignoleria


    relativamente invece alla tua domanda specifica in SQLServer
    il RANK() OVE..... si "traduce" in ROW_NUMBER() OVE.....
    per il resto mi sembra tutto uguale


    caso mai postaci lo Script (il CREATE TABLE) della tabella
    https://msdn.microsoft.com/it-it/lib...=sql.120).aspx

    .
    Ultima modifica di nman; 22-01-2016 00:17 

  3. RANK() esiste anche in sql server;

    Ranking Functions | T-SQL content from SQL Server Pro
    ℹ️ Leggi di più su sspintux ...

  4. #4
    L'avatar di nman
    nman non è in linea Topo di biblioteca
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    RANK() esiste anche in sql server;
    Caspita, non si finisce mai di imparare .......
    Grazie per la segnalazione

    infatti ho fatto in minitest e danno lo stesso identico risultato ???
    SELECT     Id, Ca1, Ca3, 
    ROW_NUMBER() OVER (PARTITION BY Ca1 ORDER BY Ca3) AS RowN,
    RANK() OVER (PARTITION BY Ca1 ORDER BY Ca3) AS RankN
    FROM         dbo.T1
    
    Vado a studiarmi le differenze ......



    PS
    Si differiscono in caso di valori concomitanti del campo da ordinare
    ma allora la Vista proposta da Giuseppe al post#1 va già bene anche su SQLServer ....


    .
    Ultima modifica di nman; 22-01-2016 10:22 

  5. #5
    Chiuso per crossposting
    ℹ️ Leggi di più su AntonioG ...

Discussione chiusa

Potrebbero interessarti anche ...

  1. Risposte: 6
    Ultimo Post: 26-03-2016, 23:22
  2. Ordinamento crescente Order by e ordinamento numero Max.
    Da raamino73 nel forum Microsoft SQL Server
    Risposte: 3
    Ultimo Post: 19-04-2013, 17:12
  3. Grafico con date e intervallo di date!
    Da aliako nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 15-02-2012, 22:58
  4. [C++] ordinamento di date di nascita
    Da el cuba libre nel forum C/C++
    Risposte: 9
    Ultimo Post: 22-02-2011, 16:06
  5. Ordinamento SortOrder date...
    Da Morpheus80 nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 07-10-2004, 18:05