Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 327
  • Last Modified:

SQL Statment

I have 2 Tabels , one showing the clinc data and oher there is amout of invoice I want to run report shwoing all records of clnc table and the total amount of invoice even null value during period time ... pls check my code which is correct but it showing only the records have figures and the clnc which have nill values it not appearing ... pls help us
SELECT a.clnna, a.clnc, SUM(b.total) AS total
FROM clnc a, invmaster b
WHERE a.clnc = b.clnc  AND 
    b.inv_date BETWEEN ? AND ?
GROUP BY a.clnna, a.clnc

Open in new window

0
ezaldeen
Asked:
ezaldeen
9 Solutions
 
jwentingCommented:
It doesn't show those records because they don't have any child records.
The where clause excludes any records in clnc for which no records exist in invmaster (assuming no records exist in invmaster for which the clnc column is NULL, which would be a logical assumption).

You'd have to use something like a union on clnc to get records there with no child records as well.
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
what database?
SELECT a.clnna, a.clnc, SUM(b.total) AS total
FROM clnc a
LEFT JOIN invmaster b
  ON a.clnc = b.clnc  AND 
 AND b.inv_date BETWEEN ? AND ?
GROUP BY a.clnna, a.clnc

Open in new window

0
 
JonasMalmstenCommented:
You need to do an "outer left join", not sure which database you use, but syntax for oracle would be:

SELECT a.clnna, a.clnc, SUM(b.total) AS total
FROM clnc a, invmaster b
WHERE a.clnc = b.clnc(+)  AND
    (b.clnc is null or b.inv_date BETWEEN ? AND ?)
GROUP BY a.clnna, a.clnc
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
divyeshhdoshiCommented:
SELECT a.clnna, a.clnc, SUM(b.total) AS total
FROM clnc a, invmaster b
WHERE a.clnc = b.clnc(+)  AND
    b.inv_date BETWEEN ? AND ?
GROUP BY a.clnna, a.clnc
0
 
ezaldeenAuthor Commented:
Thanks for multi answers ...
This Access Database ....
I try to run SQl Statment which is given by JONAS & DIVYE.. but it not work fine
I use dataenvirment tool with VB6 ...
can any one give best statment work fine ..
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
ms access:
SELECT a.clnna, a.clnc, SUM(b.total) AS total
FROM clnc a
LEFT OUTER JOIN invmaster b
  ON ( a.clnc = b.clnc  AND 
 AND b.inv_date BETWEEN ? AND ? )
GROUP BY a.clnna, a.clnc

Open in new window

0
 
ezaldeenAuthor Commented:
Thanks ange....
It's work fine , but the field of (Total) showing NULL if there is no data , I need to show it as (0) Zero
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
SELECT a.clnna, a.clnc, ISNULL(SUM(b.total),0) AS total
FROM clnc a
LEFT OUTER JOIN invmaster b
  ON ( a.clnc = b.clnc  AND
 AND b.inv_date BETWEEN ? AND ? )
GROUP BY a.clnna, a.clnc
0
 
ezaldeenAuthor Commented:
Thanks
But still not solve it , it showing error , pls see the attachment
untitled.bmp
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
sorry. ..
SELECT a.clnna, a.clnc, IF(ISNULL(SUM(b.total),0,SUM(b.total)) AS total
FROM clnc a
LEFT OUTER JOIN invmaster b
  ON ( a.clnc = b.clnc  AND 
 AND b.inv_date BETWEEN ? AND ? )
GROUP BY a.clnna, a.clnc

Open in new window

0
 
ezaldeenAuthor Commented:
Dear ...
I use Dataenvirment with VB6 ...
your statment to work with this >>> I try many times still there is a problem ... still error coming
the IF statment not work into select statment with dataenvirment in VB6 ... pls search another way
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
sorry. ms access it's iif and not if in the query:
http://www.techonthenet.com/access/functions/advanced/iif.php
SELECT a.clnna, a.clnc, IIF(ISNULL(SUM(b.total),0,SUM(b.total)) AS total
FROM clnc a
LEFT OUTER JOIN invmaster b
  ON ( a.clnc = b.clnc  AND 
 AND b.inv_date BETWEEN ? AND ? )
GROUP BY a.clnna, a.clnc

Open in new window

0
 
ezaldeenAuthor Commented:
Thanks ...
I think this will work into access application but not with data envirment in VB6 ... I take it copy and paste on our vb6 application but not work and still there is an error
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I never worked with dataenvironment, so I don't know what the problem could be, at least not without seeing the EXACT ERROR !
remember, we are not sitting in front of your screen. I don't have any crystal balls ...
0
 
ezaldeenAuthor Commented:
Thanks Alot ...
I found this and it's work fine Now :
***********************************************************
SELECT a.clnna, a.clnc, SUM(IIf(isnull(b.total), 0, b.total))
    AS total
FROM clnc a LEFT OUTER JOIN
    invmaster b ON (a.clnc = b.clnc AND b.inv_date BETWEEN
    ? AND ?)
GROUP BY a.clnna, a.clnc
***********************************************************************
Thanks ...
0
 
ezaldeenAuthor Commented:
fine
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now