Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
SQL Seeing Double
Message
De
04/05/1998 17:31:26
 
 
À
04/05/1998 16:28:43
Stacey Wilson
Micro Key Software, Inc
Kissimmee, Floride, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00096860
Message ID:
00096881
Vues:
18
>Hi all,
>
>I'm experiencing a pretty odd anomoly using a SQL statement. The syntax for this query is as follows :
>
>SELECT table1.field1,table1.field2,table1.field3,sum(table2.field1)as newfield1, ;
> table2.field2,(sum(table2.field1)+table2.field2) as newfield2,sum(table3.field1) as newfield3 ;
> FROM table1,table2,table3 ;
> WHERE table2.field3 == table1.field1 ;
> AND table3.field2 == table1.field1 ;
> AND table2.field4 == "" ;
> AND table3.field3 == "" ;
> AND table1.field4 = " ;
> GROUP BY table1.field1 ;
> ORDER BY table1.field1
>
>My problem is that the sum of newfield3 is always twice as much as what is actually in table3.field1. Can anyone explain why this may be happening ?
>
>TIA
>
>Stacey Wilson
>Reinsurance Management Inc.

No... since I don't know what is in field one or two or three it is really hard to see how you have things joined.. also, I don't know if you are wanting certain fields to be empty or those are just " marks to short step typeing what is above it...

Here is a tip... Turn of the grouping and you will see all the records that are created in your query... chances are that records are getting included twice from table3 that you didn't intend.

Rember, if you select X from table 1 and there are many records in table 2 that match from your join, and you sum(x) in will include X from table 1 for every matching record in table 2 overstating the sum by the number of records in which the join was true.

I believe you can elimination the from happening if you do something other than the default join... I always get those confused, left outter or right outter or some such.

BOb
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform