Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Need advice on SQL
Message
From
17/09/2006 18:03:51
 
 
To
17/09/2006 17:15:52
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01154440
Message ID:
01154510
Views:
8
>>try
>>
>>SELECT Program.Numero,Program.Active,Program.Title,Program.Notes_E,Program.Notes_F,Program.NoMaster,;
>> Master.FirstName,Master.LastName,MasterType.Title_E AS MasterType_E,MasterType.Title_F AS MasterType_F,Video.Url,Video.Numero AS PrimaryKey;
>> FROM Program;
>> INNER JOIN Master ON Program.NoMaster=Master.Numero;
>> INNER JOIN MasterType ON Master.NoMasterT=MasterType.Numero;
>> INNER JOIN Video ON Program.Numero=Video.NoProgram;
>> INNER JOIN InvoiceI ON Video.Numero=InvoiceI.NoVideo;
>> INNER JOIN Invoice ON InvoiceI.NoInvoice=Invoice.Numero;
>> WHERE Program.Active AND Invoice.AddUser=1;
>> AND Video.Numero=(SELECT MIN(Numero) FROM Video V WHERE V.NoProgram=Video.NoProgram AND V.Numero=InvoiceI.NoVideo);
>> ORDER BY Program.Title
>>
>
>If I try that like that, it says error correlating fields.

sorry I have not looked well.

try ( if VFP support it ):
SELECT Program.Numero,Program.Active,Program.Title,Program.Notes_E,Program.Notes_F,Program.NoMaster,;
 Master.FirstName,Master.LastName,MasterType.Title_E AS MasterType_E,MasterType.Title_F AS MasterType_F,Video.Url,Video.Numero AS PrimaryKey;
 FROM Program;
 INNER JOIN Master ON Program.NoMaster=Master.Numero;
 INNER JOIN MasterType ON Master.NoMasterT=MasterType.Numero;
 INNER JOIN Video ON Program.Numero=Video.NoProgram;
 INNER JOIN InvoiceI ON Video.Numero=InvoiceI.NoVideo;
 INNER JOIN Invoice ON InvoiceI.NoInvoice=Invoice.Numero;
 WHERE Program.Active AND Invoice.AddUser=1;
 AND Video.Numero=(SELECT MIN(V.Numero) FROM Video V JOIN InvoiceI I ON V.Numero=I.NoVideo WHERE V.NoProgram=Video.NoProgram);
 ORDER BY Program.Title
but it can to be not sufficient.
SELECT Program.Numero,Program.Active,Program.Title,Program.Notes_E,Program.Notes_F,Program.NoMaster,;
 Master.FirstName,Master.LastName,MasterType.Title_E AS MasterType_E,MasterType.Title_F AS MasterType_F,Video.Url,Video.Numero AS PrimaryKey;
 FROM Program;
 INNER JOIN Master ON Program.NoMaster=Master.Numero;
 INNER JOIN MasterType ON Master.NoMasterT=MasterType.Numero;
 INNER JOIN Video ON Program.Numero=Video.NoProgram;
 INNER JOIN InvoiceI ON Video.Numero=InvoiceI.NoVideo;
 INNER JOIN Invoice ON InvoiceI.NoInvoice=Invoice.Numero;
 WHERE Program.Active AND Invoice.AddUser=1;
 AND Video.Numero=(SELECT MIN(V.Numero) FROM Video V JOIN InvoiceI I ON V.Numero=I.NoVideo;
 JOIN  Invoice ON I.NoInvoice=Invoice.Numero AND Invoice.AddUser=1;
 WHERE V.NoProgram=Video.NoProgram);
 ORDER BY Program.Title
It is better probably a solution in two steps.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform