Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problema con Query
martedì 19 giugno 2007 - 09.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 19 giu 2007 - 09:05
Ciao,
chiedo ancora una volta il vostro aiuto...
io ho questa query....che funziona benissimo
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
ora dovrei aggiungere al filtro di ricerca....un altro campo di un'altra tabella.... il campo TXT della tabella ATT....dove CMP.ID_CMP=ATT.ID_CMP
ho provato così
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP, c.TXT
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT AS c ON CMP.ID_CMP=ATT.ID_CMP
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND ATT.TXT = 'IRF'
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
ma mi dice "missing keywords".....
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
mar 19 giu 2007 - 10:21
Penso che il problema risieda qui:
"INNER JOIN ATT AS c"
Ciao
Filippo
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 20 giu 2007 - 08:57
ci sono riuscito
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT ON CMP.ID_CMP=ATT.ID_CMP
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND ATT.TXT = 'IRF'
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
così funziona.....ora mi sono accorto che devo aggiungere un'altra tabella nella ricerca....
ho aggiunto
LEFT JOIN TPLATT ON ATT.ID_TPLATT=TPLATT.ID_TPLATT...è collegata con la tabella ATT tramite ID_TPLATT....
così facendo
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT ON CMP.ID_CMP=ATT.ID_CMP
LEFT JOIN TPLATT ON ATT.ID_TPLATT=TPLATT.ID_TPLATT
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND ATT.TXT = 'IRF'
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
non dovrebbe darmi almeno lo stesso risultato di prima?
grazie!
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
mer 20 giu 2007 - 10:05
Il problema risiede nel fatto che in questa query
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP, c.TXT
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT AS c ON CMP.ID_CMP=ATT.ID_CMP
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND ATT.TXT = 'IRF'
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
chiami la tabella ATT come c
"ATT AS c"
e poi sotto nella WHERE la usi come ATT
"AND ATT.TXT = 'IRF'"
non lo provata la query ma penso che il problema risieda lì...
Ciao
Filippo
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 20 giu 2007 - 10:09
no se guardi bene non la chiamo più così..... infatti la prima query funziona bene....
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
ven 22 giu 2007 - 09:07
nessuno mi sa dare una manina?
provo a spiegarmi meglio... io ho questa query che funziona bene....
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT ON CMP.ID_CMP=ATT.ID_CMP
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND ATT.TXT = 'IRF'
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
ora dovrei cercare una stringa anche in un altra tabella (TPLATT)....nella tabella ATT in corrispondenza di ID_ATT c'è anche ID_TPLATT che è presente appunto in TPLATT...e da questa tabella dovrei prendere ciò che è presente nel campo DESTPLATT...
ho provato così ma non mi ritorna nulla
SELECT a.CODCMP, a.MOD2, a.VAR2, a.DESCMP, a.EXTRA_DESCRIPTION, a.ID_SEDE, a.ID_CMP
FROM
CMP a, (SELECT SUBSTR(CODCMP,0,10) PROGETTO, max(CODCMP) CODCMP FROM CMP
INNER JOIN ATT ON CMP.ID_CMP=ATT.ID_CMP
LEFT JOIN TPLATT ON ATT.ID_TPLATT=TPLATT.ID_TPLATT
WHERE
ID_SEDE = 5 AND (CODCMP LIKE ('5253639%')) AND CMP.ID_STA <> 904 AND (ATT.TXT LIKE 'IRF%' OR TPLATT.DESTPLATT LIKE 'pin%' )
GROUP BY SUBSTR(CODCMP,0,10)) b where a.CODCMP=b.CODCMP
pensavo mi ritornasso almeno il risultato di prima...
Torna su
Stanze Forum
Elenco Threads
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 !