Wilder1626
asked on
Oracle - Count with 3 criteria
Hi all
I am trying to build the SQL that would count the number of time i have a match on those 3 crirerias below:
1-TLR.CARRIER_ID,
2-LRN.FROM_LOW_KEY_VALUE,
3-LRN.TO_LOW_KEY_VALUE
How can i do that?
Thanks again for your help
I am trying to build the SQL that would count the number of time i have a match on those 3 crirerias below:
1-TLR.CARRIER_ID,
2-LRN.FROM_LOW_KEY_VALUE,
3-LRN.TO_LOW_KEY_VALUE
How can i do that?
Thanks again for your help
SELECT TLR.CARRIER_ID, LRN.FROM_LOW_KEY_VALUE,LRN.TO_LOW_KEY_VALUE
FROM
TL_RATE TLR, TL_RATE_DETAIL TRD, LANE_RATE_NETWORK LRN
WHERE
TLR.CARRIER_ID = TRD.CARRIER_ID (+)
AND TLR.LANE_ID = TRD.LANE_ID (+)
AND TLR.TARIFF_CLASS_ID = TRD.TARIFF_CLASS_ID (+)
AND TLR.EFFECTIVE = TRD.EFFECTIVE (+)
AND TLR.LANE_ID = LRN.ID
AND TLR.CARRIER_ID = 'BULK'
AND LRN.FROM_LOW_KEY_VALUE = 'ROBERTXD'
AND LRN.TO_LOW_KEY_VALUE = '24'
AND TLR.DATE_INVALID > TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'), 'YYYYMMDD')-365
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi all
let me try that.
I was just testing like this also it it looks like i have the good result so far:
let me try that.
I was just testing like this also it it looks like i have the good result so far:
SELECT COUNT (TLR.CARRIER_ID)
FROM
TL_RATE TLR, TL_RATE_DETAIL TRD, LANE_RATE_NETWORK LRN
WHERE
TLR.CARRIER_ID = TRD.CARRIER_ID (+)
AND TLR.LANE_ID = TRD.LANE_ID (+)
AND TLR.TARIFF_CLASS_ID = TRD.TARIFF_CLASS_ID (+)
AND TLR.EFFECTIVE = TRD.EFFECTIVE (+)
AND TLR.LANE_ID = LRN.ID
AND TLR.CARRIER_ID = 'BULK'
AND LRN.FROM_LOW_KEY_VALUE = 'ROBERTXD'
AND LRN.TO_LOW_KEY_VALUE = '24'
AND TLR.DATE_INVALID > TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'), 'YYYYMMDD')-365
GROUP by TLR.CARRIER_ID, LRN.FROM_LOW_KEY_VALUE,LRN.TO_LOW_KEY_VALUE
A count of one is a count for all unless you have some null values.
Are you expecting different numbers?
Please post sample data from your query and your expected results.
Are you expecting different numbers?
Please post sample data from your query and your expected results.
those 3 fields will produce the same count as all 3 of them are used in the where clause
SELECT
count(TLR.CARRIER_ID)
, count(LRN.FROM_LOW_KEY_VALUE)
, count(LRN.TO_LOW_KEY_VALUE)
FROM
TL_RATE TLR
LEFT JOIN TL_RATE_DETAIL TRD ON TLR.CARRIER_ID = TRD.CARRIER_ID
AND TLR.LANE_ID = TRD.LANE_ID
AND TLR.TARIFF_CLASS_ID = TRD.TARIFF_CLASS_ID
AND TLR.EFFECTIVE = TRD.EFFECTIVE
INNER JOIN LANE_RATE_NETWORK LRN ON TLR.LANE_ID = LRN.ID
WHERE TLR.CARRIER_ID = 'BULK'
AND LRN.FROM_LOW_KEY_VALUE = 'ROBERTXD'
AND LRN.TO_LOW_KEY_VALUE = '24'
AND TLR.DATE_INVALID > TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'), 'YYYYMMDD')-365
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi all thanks this is now working great
Can you provide some sample data and expected results?