Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-07-2005, 13:27   #1
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Query SQL ... mi aiutate ???

Ho una tabella che contiene i seguenti campi :
(vi elenco i più significativi)

nome_Stazione (codice alfanumerico di 4 caratteri)
anno
giuliano
...
...
...
...
...

nome_Stazione,anno,giuliano insieme sono chiave primaria per la tabella

Quello che devo fare è verificare se esiste l'informazione per un dato giuliano di un certo anno ma se l'informazione non esiste devo anche sapere per quale stazione non esiste ....

Avevo quindi pensato a una left join tra un
SELECT DISTINCT (nome_Stazione) FROM Tabella
e

SELECT nome_Stazione, anno , giuliano WHERE anno = 'anno' AND giuliano = 'giuliano'

in questo modo se esistono delle informazioni per una determinata stazione ma non sono presenti ne giuliano ne anno per quella stazione cmq mi visualizzerà il nome stazione senza anno e giuliano ... dico bene ????

In sintassi SQL ???
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 14:14   #2
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Codice:
SELECT DISTINCT (nome_Stazione) FROM Tabella

union 

SELECT nome_Stazione, anno , giuliano from (nome_Stazione) WHERE anno = 'anno' AND giuliano = 'giuliano'
Attenzione che "union" automaticamente non considera gli elementi duplicati. Se ti interessa tener conto di elementi duplicati usa "union all".
La parte in grassetto te l'eri dimenticata...
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 14:14   #3
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Questa non mi funge :


SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano
FROM log AS A
LEFT OUTER JOIN
SELECT B.anno, B.giuliano FROM log as B WHERE anno='05' AND giuliano = '035'
ON A.nome_stazione = B.nome_stazione
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 14:17   #4
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Quote:
Originariamente inviato da maulattu
Codice:
SELECT DISTINCT (nome_Stazione) FROM Tabella

union 

SELECT nome_Stazione, anno , giuliano from (nome_Stazione) WHERE anno = 'anno' AND giuliano = 'giuliano'
Attenzione che "union" automaticamente non considera gli elementi duplicati. Se ti interessa tener conto di elementi duplicati usa "union all".
La parte in grassetto te l'eri dimenticata...
Quindi la query completa e corretta come diviene ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 15:05   #5
glb
Senior Member
 
Iscritto dal: Jun 2001
Città: Palermo
Messaggi: 206
Quote:
Originariamente inviato da leon84
Questa non mi funge :


SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano
FROM log AS A
LEFT OUTER JOIN
SELECT B.anno, B.giuliano FROM log as B WHERE anno='05' AND giuliano = '035'
ON A.nome_stazione = B.nome_stazione
Ciao

Ad occhio non funge xchè nella tabella definita dalla seconda select devi indicare (nella select appunto) il campo nome_stazione che serve x la join.

Cioe: SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano
FROM log AS A
LEFT OUTER JOIN
SELECT B.nome_stazione , B.anno, B.giuliano FROM log as B WHERE anno='05' AND giuliano = '035'
ON A.nome_stazione = B.nome_stazione

Per quanto riguarda la query proposta da maulattu a parte il fatto che non capisco cosa c'entri con il tuo problema sempre ad occhio non mi sembra possa funzionare xchè in una union le query/tabelle che si vogliono unire devono avere la stessa struttura cioè gli stessi campi (almeno credo).

Se ho capito bene ed il problema è quello di individuare i record nei quali i campi chiave siano vuoti dovresti semplicemente fare una select tipo:

Select nome_stazione, anno, giuliano
FROM log
where

(nome_stazione is null) OR (anno is null) OR (giuliano is Null)


Bye
glb è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 15:50   #6
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980


1) non puoi fare due select in una query
2) non serve SELECTare i campi per le clausole WHERE e ON
3) stai facendo un join suoi campi di una stessa tabella


se proprio vuoi quella query:
Codice:
SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano
FROM log A
LEFT OUTER JOIN log B 
ON (B.anno='05' 
AND B.giuliano = '035' 
AND A.nome_stazione = B.nome_stazione)

Ultima modifica di kk3z : 04-07-2005 alle 15:53.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 16:08   #7
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1451
Quote:
Originariamente inviato da kk3z


1) non puoi fare due select in una query
Uhm?
Mai sentito parlare di subselect o query innestate?
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 16:20   #8
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da leon84
Quindi la query completa e corretta come diviene ?
così:

SELECT DISTINCT (nome_Stazione) FROM Tabella
union
SELECT nome_Stazione, anno , giuliano from Tabella WHERE anno = 'anno' AND giuliano = 'giuliano'
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 17:22   #9
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1451
Quote:
Originariamente inviato da maulattu
così:

SELECT DISTINCT (nome_Stazione) FROM Tabella
union
SELECT nome_Stazione, anno , giuliano from Tabella WHERE anno = 'anno' AND giuliano = 'giuliano'
L'union la puoi applicare solo su insiemi uguali..
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 17:29   #10
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
EDIT non avevo capito quello che chiedevi

Ultima modifica di Brazorv : 04-07-2005 alle 18:00.
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 07:29   #11
glb
Senior Member
 
Iscritto dal: Jun 2001
Città: Palermo
Messaggi: 206
Quote:
Originariamente inviato da maulattu
così:

SELECT DISTINCT (nome_Stazione) FROM Tabella
union
SELECT nome_Stazione, anno , giuliano from Tabella WHERE anno = 'anno' AND giuliano = 'giuliano'

Ciao

Mi spieghi xchè metti nome_stazione tra parentesi? che ci azzecca?
Comunque la tua query è sempre sbagliata .
Le tabelle unite DEVONO avere la stessa struttura.

Quote:
Originariamente inviato da kk3z


1) non puoi fare due select in una query
2) non serve SELECTare i campi per le clausole WHERE e ON
3) stai facendo un join suoi campi di una stessa tabella


se proprio vuoi quella query:
Codice:
SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano
FROM log A
LEFT OUTER JOIN log B 
ON (B.anno='05' 
AND B.giuliano = '035' 
AND A.nome_stazione = B.nome_stazione)
1) come diceva giustamente beppe le subselect (o sottoquery) sono assolutamente ammissibili in sql anche se, in alcuni casi, (es. access) è necessario metterle tra parentesi.
2) Non puoi mettere nelle condizioni di join dei valori ma solo nomi di campo . Dove l'hai vista una cosa del genere?
3) Hai mai sentito parlare di selfjoin

Ditemi una cosa. I vostri suggerimenti sono basati su una esperienza specifica o ....... tirate ad indovinare.

Bye
glb è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 08:34   #12
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
Quote:
Ditemi una cosa. I vostri suggerimenti sono basati su una esperienza specifica o ....... tirate ad indovinare.
ma hai provato ad eseguire la tua query? è sbagliata sintatticamente, kk3 ha corretto i tuoi errori e la sua funziona bene. Quando usi i join non devi fare una select nella seconda tabella. Devi specificare la seconda tabella + la condizione di join + la clausola WHERE se lo vuoi.
ne tuo primo post hai pure scritto questo
Quote:
Select nome_stazione, anno, giuliano
FROM log
where

(nome_stazione is null) OR (anno is null) OR (giuliano is Null)
ma se nome_stazione, anno, giuliano sono la chiave primaria come possono essere null?
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 09:42   #13
glb
Senior Member
 
Iscritto dal: Jun 2001
Città: Palermo
Messaggi: 206
Quote:
Originariamente inviato da Brazorv
ma hai provato ad eseguire la tua query? è sbagliata sintatticamente, kk3 ha corretto i tuoi errori e la sua funziona bene. Quando usi i join non devi fare una select nella seconda tabella. Devi specificare la seconda tabella + la condizione di join + la clausola WHERE se lo vuoi.
ne tuo primo post hai pure scritto questo

ma se nome_stazione, anno, giuliano sono la chiave primaria come possono essere null?
Allora.... Ricapitoliamo.

Io ho suggerito 2 query:

La prima (che come avevo sottolineato era fatta ad occhio ) serviva solo x spiegare l'errore di non aver aggiunto nella select della sottoquery da Joinare con un selfjoin alla tabella il nome del campo utilizzato come chiave di join. In effetti non l'avevo provata (era solo un esempio) c'era qualche errore di sintassi. La query corretta e funzionante (provata in access 2002) sarebbe:

SELECT DISTINCT A.nome_stazione, B.anno, B.giuliano FROM log AS A LEFT OUTER JOIN (SELECT nome_stazione , anno, giuliano FROM log WHERE anno='05' AND giuliano = '035') as B ON A.nome_stazione = B.nome_stazione

La seconda invece funziona correttamente.

Per quanto riguarda, però, la tua osservazione sul fatto che la chiave primaria x definizione non può contenere valori null hai perfettemente ragione sempre che i campi in questione SIANO definiti chiave primaria nella struttura della tabella.
Se fosse così la stessa domanda di leon sarebbe improponibile. Se il problema invece esiste possono esserci 2 possibilità:

La prima è che quei campi vengano di fatto utilizzati come chiavi primarie senza essere definiti nella struttura della tabella come tali.
La seconda è che invece i campi contengano stringhe nulle ("") . In questo caso nella query che ho proposto basta cambiare 'is null' con '=""'.

Scusa se ti ho dato prima l'impressione di essere un saputello non ne avevo l'intenzione ma sinceramente continuo a non capire perchè continui a sostenere che la query proposta da kk3z sia corretta ed abbia corretto i miei errori.

Per curiosità ho provato as eseguirla in access nel db di esempio che mi sono costruito x verificare le query che avevo suggerito e il risultato è stato prima un msg di errore poi addirittura la chiusura del programma . Evidentemente access non l'ha gradita .

Bye
glb è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 09:57   #14
Brazorv
Member
 
Iscritto dal: Aug 2004
Messaggi: 156
la tua ultima query è corretta (nella prima mancavano le parentesi), ed è perfettamente equivalente a quella di kk3z. io le ho provate su postgres.
Brazorv è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 10:39   #15
glb
Senior Member
 
Iscritto dal: Jun 2001
Città: Palermo
Messaggi: 206
Quote:
Originariamente inviato da Brazorv
la tua ultima query è corretta (nella prima mancavano le parentesi), ed è perfettamente equivalente a quella di kk3z. io le ho provate su postgres.
Beh! Se è così significa che la possibilità di mettere valori puntuali piuttosto che nomi di campo nelle chiavi di join c'è ma dipende dal 'dialetto 'sql' utilizzato. (con jet sql di access non sembra possibile )

In effetti è una grande comodità. . Sarei curioso di sapere se è previsto nel sql standard.

C'è sempre qualcosa da imparare.

Ciao e grazie
glb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
La NASA e IBM hanno annunciato il nuovo ...
Nikon ha annunciato l'obiettivo per foto...
Il Trump Phone non esiste? Per ora ci so...
Le canzoni di Spotify arrivano nelle Sto...
Il governo cinese svela i sussidi erogat...
Vision Discovery Edition: ecco il primo ...
Il robot lavapavimenti geniale: non lo d...
Il MIT gela l'entusiasmo sull'AI: 95% de...
Anche la nuova Renault Twingo avrà...
Back to School 2025: sconti pazzi su tec...
Tutte le offerte Apple da non perdere: A...
Google lancia Gemini for Government: una...
Xiaomi lancia sconti imperdibili: ventil...
Tesla sotto indagine per non aver segnal...
WhatsApp Beta iOS: semplificata la segna...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v