PROBLEMA SUBQUERY e MAX

lunedì 31 luglio 2006 - 05.42

killer Profilo | Newbie

Salve a tutti ho un problema e non riesco a saltarci propio fuori..ho provato a fare delle subquery ma mi sono perso ....allora ho utilizzato il mio metodo classico dei left join..pero :

diciamo che io abbia 1 tabella listino

Citazione:


|id| |listino| |prezzo| |data| |codarti|

|1| |1| |23.00| | 23/05/1997| 1 *****
|2| |1| |21.00| | 23/05/1996| 1
|3| |1| |12.00| | 23/05/1996| 1
|4| |1| |23.00| | 23/05/1996| 1

|5| |2| |23.00| | 23/05/1997| 1
|6| |1| |21.00| | 23/05/1999| 2 ******
|7| |1| |12.00| | 23/05/1996| 2
|8| |2| |23.00| | 23/05/1996| 2






adesso nella pagina principale dove ho ad esempio 10 articoli diversi con prezzi diversi estratti dove faccio la mia bella query..... dovo includo i miei join tra tabelle...pero per ogni articolo che visualizzo nella pagina devo far visualizzare ....il prezzo che devo estrarre dalla tabella listino che lego con codarti

in pratica per ogni articolo estratto devo poter ottenere il listino piu aggiornato e solo 1 .. ho provato max ma non riesco a legarlo bene con i left join..

la query che imposto e di questo tipo:

$query ="SELECT TOP $limit * from tab1 left join tab2 on tab1.codarti = tab2.codarti left join tablistino on tab2.codarti = tablistino.codarti WHERE listino = $listino AND prod NOT IN (SELECT TOP $limitva product from tab1 ORDER BY prod)ORDER BY prod,data DESC";

$limit= al limite predevinito ad esempi 5
$limitva = e il calcolo che ottengo per l adivisione per pagine
$listino = mettiamo sia 1

come faccio ad utilizzare max( data) per estrarre per ogni articolo solo 1 listino e con la data piu aggiornata ad esempio per gli articoli 1 e 2 vorrei che saltassero fuori solo quelli con gli asterischi....

UFFA! e 5 ore che ci sbatto la testa..Help ciao e grazie

lbenaglia Profilo | Guru

>diciamo che io abbia 1 tabella listino

Che DBMS utilizzi?

>|id| |listino| |prezzo| |data| |codarti|
>
>|1| |1| |23.00| | 23/05/1997| 1 *****
>|2| |1| |21.00| | 23/05/1996| 1
>|3| |1| |12.00| | 23/05/1996| 1
>|4| |1| |23.00| | 23/05/1996| 1
>
>|5| |2| |23.00| | 23/05/1997| 1
>|6| |1| |21.00| | 23/05/1999| 2 ******
>|7| |1| |12.00| | 23/05/1996| 2
>|8| |2| |23.00| | 23/05/1996| 2

In base a questi dati, quale result set vuoi ottenere?

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

1 ciao sviluppo su msde
2 vorrei ottenere per i prodotti che estraggo in una pagina i risultati con asterisco


esempio

se nella pagina estraggo articolo 1 e 2 orrei estraesse nella pagina quelli con asterisco (e prendo in considerazione il listino 1)

|art| |listino| |data| | prezzo|
|1| | 1 | | il piu aggiornato | |riferito al piu agiornato|
|2 | |1 | | il piu aggiornato | | riferito al piu aggiornato|

solo 1 risultato per ogni articolo

ciao e grazie

lbenaglia Profilo | Guru

>1 ciao sviluppo su msde
>2 vorrei ottenere per i prodotti che estraggo in una pagina i
>risultati con asterisco

Putroppo non ho abbastanza dati per risponderti.
Posta la struttura (CREATE TABLE) di tutte le tabelle coinvolte nella query che hai postato, alcuni dati di prova (INSERT INTO), la query che stai eseguendo con tutti i parametri di input ed il result set che vuoi ottenere.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5