Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Ma bisogna anche capire quello che si copia. No ?

    Prova questo. Non testato perche non ho SQL server ma l'idea è questa.

    codice:
    SELECT parziale, lc_note, ROW_NUMBER() OVER(ORDER BY parziale) as ct FROM 
    (SELECT DISTINCT LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) AS parziale,lc_note
     FROM HH_EX_LISTINI WHERE lc_note!='' ) SUB WHERE ct >=0 AND ct<=40;
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #2
    Precedentemente avevo utilizzato il group by perché potrei avere questi record

    lc_codart lc_note
    10010.00.10 IRR. N1 GENN 1
    10010.00.20 IRR. N2 GENN 1
    10010.00.30 IRR. N2 GENN 1
    10010.00.40 IRR. N2 GENN 1
    10010.10.10 IRR. N3 GENN 1

    deve estrarmi un record soltanto, con il group by su LEFT -> CHARINDEX dovrebbe farlo, invece con un distinct mi tira fuori questi record (com'è giusto che sia)

    lc_codart lc_note
    10010 IRR. N1 GENN 1
    10010 IRR. N2 GENN 1
    10010 IRR. N3 GENN 1

    io invece vorrei
    lc_codart lc_note
    10010 IRR. N1 GENN 1

  3. #3
    L'errore che ricevo con il tuo codice è questo

    "Invalid column name 'ct'."

    il secondo WHERE, non dovrebbe agire sulla select esterna e non su quella interna?
    Io utilizzo MySql, per cercare di capire la query, partendo dalla select annidata, quella con il distinct, estrae tutti i valori unici che ha nella condizione LEFT -> CHARINDEX, gli assegna un alias, estrae anche il secondo campo lc_note, e fa una condizione sempre su lc_note. Questa query estrae tutto il contenuto della tabella e lo "passa" ad un alias chiamato SUB, che viene letto dalla query più esterna, la quale estrae il campo parziale, ln_note e il numero di riga facendo un ordinamento sull'alias della query annidata. Infine il WHERE è una condizione sulla select più esterna, dove dovrebbe esistere l'alias ct (il numero di riga).
    Questo è quello che ho capito io, è corretto?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Usi mysql o SQL server ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    uso sql server, Mysql lo conosco perché ho sempre utilizzato quello, ma in questo progetto devo interfacciarmi con sql server. la versione precisa è sql express 2008 R2

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Prova cosi. Sono un po' arrugginito con SQL server.

    Dovresti togliere i [master].[dbo].

    codice:
    SELECT * from 
    (select T1.parziale, T2.note, ROW_NUMBER() OVER(ORDER BY T1.parziale) as ct
    from 
    (SELECT distinct LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) AS parziale
    FROM [master].[dbo].HH_EX_LISTINI) t1
    INNER JOIN 
     (select  LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) AS parziale, min(lc_note) as note
       from [master].[dbo].HH_EX_LISTINI 
       group by LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) 
     ) t2 on T1.parziale=T2.parziale 
    WHERE T2.note!='') TF
    where TF.ct between 1 and 40


    20170705_001.JPG
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Grazie mille, sembra funzionare lanciata da console, la integro con php. Vedo di capirci qualcosa di quello che hai fatto.

    grazie.

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.