Recherche dans table

chris - 27 août 2001 à 22:39
 onha - 29 août 2001 à 16:43
Bonjour

Est t il possible d'effectuer une requete dans deux tables d'une base de donnees(access) ou les colonnes portent le meme nom.

exemple :

nom de la base : base.mdb
Nom des tales : Table1, Table2
Nom des colonnes pour requete : dans la table1 Numero et dans la table2 Numero.

Si quelqu'un a une idée

chris

4 réponses

voir ci-dessous ce que tu peux faire en SQL.

JC

Jointure UNION
Concatène les lignes d'une table à la fin d'une autre table.

SELECT col_1 [, col_2, ... col_n]

FROM référence_de_table
UNION [ALL]
SELECT col_1 [, col_2, ... col_n]

FROM référence_de_table

Description

Utilisez la jointure UNION pour joindre les lignes d'une table à la fin d'un autre ensemble résultant de requête SELECT structuré de façon similaire. Les instructions SELECT pour les tables source et de jointure doivent inclure le même nombre de colonnes pour être compatibles UNION. Les structures des tables elles-mêmes n'ont pas besoin d'être les mêmes tant que les colonnes incluses dans les instructions SELECT le sont.

SELECT NoCli, Société

FROM Clients
UNION
SELECT NoCli, Société

FROM Anciens_Clients

La correspondance des types de données d'une colonne n'est pas toujours obligatoire pour les données renvoyées par une UNION de plusieurs tables. S'il y a une différence de type de données entre deux tables pour une colonne donnée, une erreur se produits la colonne correspondante des autres tables perd des données. Si, par exemple, la colonne de la première table est de type DATE et celle de la seconde table de type TIMESTAMP, une partie de la valeur TIMESTAMP serait perdue si elle était placée dans une colonne de type moindre DATE. Une erreur "Type mismatch in expression" est générée dans ces situations. Généralement, quand il y a des différences de type entre les tables, utilisez la fonction CAST pour convertir les colonnes dans un type compatible.

SELECT S.ID, CAST(S.Champ_Date AS TIMESTAMP)

FROM Source S
UNION ALL
SELECT J.ID, J.Timestamp_Field

FROM Joiner J

La correspondance de noms n'est pas obligatoire pour les colonnes de l'ensemble résultant extraites par UNION sur plusieurs tables. Les différences des noms des colonnes sont traitées automatiquement. Si la première colonne de deux tables ont des nom différents, la première colonne de l'ensemble résultant UNION utilisera le nom de colonne de la première instruction SELECT.

Par défaut, les lignes non distinctes sont agrégées en lignes uniques dans une jointure UNION. Utilisez ALL pour retenir toutes les lignes non distinctes.

Pour joindre deux tables avec UNION où une des tables n'a pas une colonne présente dans une autre, une constante ou expression compatible peut être utilisée à la place dans l'instruction SELECT de la colonne manquante. Par exemple, s'il n'y a pas de colonne dans la table JOINING correspondant à la colonne NOM dans SOURCE, une expression est utilisée pour fournir une valeur pour une pseudo-colonne JOINING.NOM. Si, par exemple SOURCE.NOM est de type CHAR(10), la fonction CAST est utilisée pour convertir une chaîne de caractères vides en CHAR(10).

SELECT S.ID, S.Nom

FROM Source S
UNION ALL
SELECT J.ID, CAST("" AS CHAR(10))

FROM Joiner J
0
Merci jc d'avoir répondu

apparament ca fonctionne voici ma ligne
SQL "SELECT Numero from com union select Numero from apv WHERE numero " & numero & ""

" & Numero & " est une valeur que je récupére dans l'url

Mon seule soucis c'est comment afficher tous les enregistrements qui comporte le meme numero

voici mon script en entier
<% numero = Request.QueryString("numero") %>
<% Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "base"SQL "SELECT Numero from com union select Numero from apv WHERE numero " & numero & ""

Set rs = OBJdbConnection.Execute(SQL)
%>

<%do while not rs.EOF %>
<%=request("Numero")%>

<%rs.movenext
loop %>
<% rs.close
set rs = nothing %>

le résultat c'est qui m'affiche par exemple si le numero=12

12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12

Pourquoi ??????????????????

si tu peux encore m'aider sur se cout la

Merci
Chris
0
cette ligne me semble erronée :
<%=request("Numero")%>

essaie plutot :
<% =rs("Numero")%>
0
Il y a juste une chose que je n'arrive pas a faire c'est de recupere les valeurs des tables

quand j'écris <%=rs("Numero")%> forcement il me renvoi uniquement une seule valeur alors que le numero existe dans les deux tables.

Comment faire :question)
0
Rejoignez-nous