Massima data

giovedì 15 marzo 2007 - 18.11

Pongo Profilo | Senior Member


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ciao a tutti! Ho un problema: devo selezionare vari recordo. Ci sono però recod doppi. IO vorrei quello con la data più recente. Ho provato ad usare max ma mi dice:
Server: Msg 8118, Level 16, State 1, Line 4
Column 'prodotti.Codice' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Server: Msg 8118, Level 16, State 1, Line 4
Column 'prodottiprezzi.CodiceProdotto' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Server: Msg 8118, Level 16, State 1, Line 4
Column 'prodottiprezzi.NodoPrezzo' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Server: Msg 8118, Level 16, State 1, Line 4
Column 'fornitori.RagioneSociale' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Server: Msg 8118, Level 16, State 1, Line 4
Column 'prodottiprezzi.Prezzo' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

alx_81 Profilo | Guru

>Ciao a tutti!
Ciao!

>Ho un problema: devo selezionare vari recordo.
>Ci sono però recod doppi. IO vorrei quello con la data più recente.
>Ho provato ad usare max ma mi dice:
>Server: Msg 8118, Level 16, State 1, Line 4
>Column 'prodotti.Codice' is invalid in the select list because
>it is not contained in an aggregate function and there is no
>GROUP BY clause.
>Server: Msg 8118, Level 16, State 1, Line 4
>Column 'prodottiprezzi.CodiceProdotto' is invalid in the select
>list because it is not contained in an aggregate function and
>there is no GROUP BY clause.
>Server: Msg 8118, Level 16, State 1, Line 4
>Column 'prodottiprezzi.NodoPrezzo' is invalid in the select list
>because it is not contained in an aggregate function and there
>is no GROUP BY clause.
>Server: Msg 8118, Level 16, State 1, Line 4
>Column 'fornitori.RagioneSociale' is invalid in the select list
>because it is not contained in an aggregate function and there
>is no GROUP BY clause.
>Server: Msg 8118, Level 16, State 1, Line 4
>Column 'prodottiprezzi.Prezzo' is invalid in the select list
>because it is not contained in an aggregate function and there
>is no GROUP BY clause.
>
Che versione si SQL Server hai?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

Pongo Profilo | Senior Member

Sql2000!

Qualla query l'ho fatta senza inner join perchè non ho capito bene come usarla quando ho varie tabelle.

PErò intanto mi piacerebbe risolvere questo problema!

Pongo Profilo | Senior Member

Ho un dubbio, cioè non so se sia giusto o meno il comportamento della quary: quando faccio la select, se ci sono solo campi dati uguali, a aprte la data la funzione MAX viene eseguita (gli errori iniziali li ho risolti mettendo tutti i campi nel group by), però quando per esempio aggiungo il prezzo, i due record sono diversi anche per il prezzo e quindi non viene trovata la data massima.

Non so se mi sono spiegato bene.

alx_81 Profilo | Guru

>Ho un dubbio, cioè non so se sia giusto o meno il comportamento
>della quary: quando faccio la select, se ci sono solo campi dati
>uguali, a aprte la data la funzione MAX viene eseguita (gli errori
>iniziali li ho risolti mettendo tutti i campi nel group by),
>però quando per esempio aggiungo il prezzo, i due record sono
>diversi anche per il prezzo e quindi non viene trovata la data
>massima.
>
>Non so se mi sono spiegato bene.

Dunque, se tu utilizzi le funzioni di aggregazione nella tua select, i campi che non sono costanti o aggregati devono essere messi nella GROUP BY list..
su questo non ci piove.. Se tu per lo stesso giorno hai più prezzi, mi viene da pensare che in realtà (se quello che vuoi sapere è la massima data) il prezzo è un'informazione che non ti serve.. a meno che non necessiti del prezzo più alto ad esempio, ed in questo caso fai la max del prezzo e sei a posto..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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