Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    Select tab 1 where tab 2

    Ciao a tutti.
    La situazione è la seguente; ho due tabelle collegate da un campo comune:

    Tab 1
    - id
    - nome

    Tab 2
    - id
    - idtab1
    - nome

    In idtab1 della seconda tabella ho l'id di tab 1. Il problema è il seguente: devo fare una select, su Tab 1, ma in base ai valori di Tab 2; esempio:
    select * from Tab 1 where nome=4 AND ("nome" di Tab 2= 5)
    Esiste un qualche sistema?
    Grazie

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Ceeeeerto!!!!

    codice:
    SELECT TAB1.* FROM TAB1, TAB2 WHERE TAB1.ID=TAB2.ID AND TAB1.NOME='5' AND TAB2.NOME='4'
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Guarda, a me quando dicono ceeeerto! mi rimettono di buon umore anche dopo una giornata "no" come questa. Grazie mille!!!!!Lo provo immediatamente.

  4. #4
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Un'altra query un po' strana, anche se poi devo collegarla, se possibile, alla precende:
    - un valore può essere comune a più record e in questo modo mi vengono raggruppati i vari record;
    - un campo contiene un valore numerico;

    Posso escludere dalla selezione i record (il gruppo di record) la cui somma algebrica del valore numerico sia zero?

    Esempio:

    Record 1 | campo1=5 | campo2=30
    Record 2 | campo1=5 | campo2=20
    Record 3 | campo1=5 | campo2=-50

    Record 4 | campo1=8 | campo2=10
    Record 5 | campo1=8 | campo2=-10


    Devo selezionare tutti i record tranne questi 5 dell'esempio, poichè la somma di campo2 dei primi 3 e dei secondi 2 è uguale a zero.
    E' fattibile in qualche modo?
    Grazie

  5. #5
    ... WHERE (campo1+campo2)<>0 ...

  6. #6
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    e per raggruppare la somma? cioè potrei anche avere la seguente situazione:

    Record 1 | campo1=5 | campo2=30
    Record 2 | campo1=5 | campo2=-20
    Record 3 | campo1=5 | campo2=-50

    Record 4 | campo1=8 | campo2=10
    Record 5 | campo1=8 | campo2=-10

    per cui il primo gruppo di tre record viene selezionato, mentre il secondo no. C'è modo?
    Grazie

    PS
    Se successivamente aggiungessi un record con campo1=5 e campo2=40, anche il primo gruppo non verrebbe più selezionato.

  7. #7

  8. #8
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    In sostanza, anzichè ragionare per singolo record dovrei ragionare per gruppi di record (in base al campo comune); se il valore (somma di campo2 dei record) è diverso da zero seleziono il gruppo di record.

    Forse non è logicamente fattibile?

    Seleziono i record raggruppandoli per campo1, per ogni gruppo sommo algebricamente campo2, se il risultato della somma è <>0 leggo i record inclusi nel gruppo.

    ... mi sono perso.

  9. #9
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    up

    Semplificando ancora:

    seleziono tutti i record che hanno un campo comune (come se fosse un distinct, forse) e la cui somma del valore di un loro campo non dia zero;

    Esisterà un modo?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.