Reputation: 2632
I need a view that Show each Location(including prénom_Nom, numéro_Teléphone, niv,no_Modèle, année) and all Paiements. Finally order by id_Location.
I try this but its not Work
CREATE View On_locations_Clients_Paiements AS
SelectClients.prénom_Nom,Clients.numéro_Teléphone,Véhicules.niv,Véhicules.no_Modèle,
Véhicules.année,Paiements.montant
FROM Location
INNER JOIN Location ON Clients.id_Client=Location.id_Client
INNER JOIN Véhicules ON Location.niv=Véhicules.niv
INNER JOIN Modèle ON Véhicules.no_Modèle=Modèle.no_Modèle
INNER JOIN Paiements ON Location.id_Location = Paiements.id_Location
--ORDER BY where id_Location = id_Location
This is the select (I'm not sure if its right)
CREATE View On_locations_Clients_Paiements AS
Select Clients.prénom_Nom,Clients.numéro_Teléphone,Véhicules.niv,Véhicules.no_Modèle,Véhicules.année,Paiements.montant
Those are my tables
CREATE TABLE [dbo].[Location](
PK[id_Location] [char](6) NOT NULL,
[debut_Location] [datetime] NULL,
[premier_Paiement] [datetime] NULL,
[paiment_Mensuel] [smallmoney] NULL,
[nombre_Mensualité] [char](2) NULL,
FK[id_Client] [char](6) NULL,
[no_Termes_location] [char](6) NULL,
FK[niv] [char](20) NULL,
CREATE TABLE [dbo].[Clients](
PK[id_Client] [char](6) NOT NULL,
[prénom_Nom] [varchar](50) NULL,
[adresse] [varchar](50) NULL,
[ville] [varchar](20) NULL,
[province] [varchar](20) NULL,
[code_Postal] [char](6) NULL,
[numéro_Teléphone] [numeric](10, 0) NULL,
CREATE TABLE [dbo].[Véhicules](
PK[niv] [char](20) NOT NULL,
[no_Modèle] [char](6) NULL,
[année] [char](4) NULL,
[kilométrage] [int] NULL,
[location_Antérieure] [char](3) NULL,
[valeur] [smallmoney] NULL,
[tranmission_Automatique] [char](3) NULL,
[airClimatise] [char](3) NULL,
[antiDemarreur] [char](3) NULL,
[no_Couleur] [char](6) NULL,
CREATE TABLE [dbo].[Paiements](
PK[id_paiement] [char](6) NOT NULL,
[date] [smalldatetime] NULL,
[montant] [smallmoney] NULL,
FK[id_Location] [char](6) NOT NULL,
Upvotes: 3
Views: 14142
Reputation: 4270
You need to take the second location out and the tables:
CREATE View On_locations_Clients_Paiements AS
Select c.prénom_Nom
,c.numéro_Teléphone
,v.niv
,v.no_Modèle
,v.année
,p.montant
FROM Location AS l
INNER JOIN Clients AS c ON c.id_Client=l.id_Client
INNER JOIN Véhicules AS v ON l.niv=v.niv
INNER JOIN Modèle AS m ON v.no_Modèle=m.no_Modèle
INNER JOIN Paiements AS p ON l.id_Location = p.id_Location
Upvotes: 2
Reputation: 65157
Change:
FROM Location
INNER JOIN Location ON Clients.id_Client=Location.id_Client
to...
FROM Location
INNER JOIN Clients ON Clients.id_Client=Location.id_Client
Updated - you are referencing Location
twice and Clients
never so I think you have a copy/paste error of some sort.
Upvotes: 0