Need Help With SQL GROUP BY and DISTINCT
I am working on a project and need to display the total of each order based on the order id. For instance I want to display the order id, customer id, order date, and then the extension price (ol_quantity * inv_price).
I would then like a total displayed for order # 1 and then move on to order #2.
Here is my SQL code :
SELECT DISTINCT orders.o_id, customer.c_id, inv_price * ol_quantity
FROM orders, customer, inventory, order_line
GROUP BY orders.o_id, customer.c_id, inv_price, ol_quantity
ORDER BY orders.o_id;
When my code is run it displays the order id, customer id and inv_price * quantity (extension price) but no order total for the order number and a new group is not started when a new order number is started....they are all clumped together.
Any help is greatly appreciated!!
Hi,
user12036843 wrote:
I am working on a project and need to display the total of each order based on the order id. For instance I want to display the order id, customer id, order date, and then the extension price (ol_quantity * inv_price).
I would then like a total displayed for order # 1 and then move on to order #2.
Here is my SQL code :
SELECT DISTINCT orders.o_id, customer.c_id, inv_price * ol_quantity
FROM orders, customer, inventory, order_line
GROUP BY orders.o_id, customer.c_id, inv_price, ol_quantity
ORDER BY orders.o_id;
When my code is run it displays the order id, customer id and inv_price * quantity (extension price) but no order total for the order number and a new group is not started when a new order number is started....they are all clumped together.
Any help is greatly appreciated!!Sorry, it's unclear what you want.
Whenever you post a question, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using.
Do you want the output to contain one row for each row in the table, plus an extra row for each distinct order, showing something about the order as a whole (e.g., total inv_price or average extension_price)? If so, you need GROUP BY ROLLUP or GROUP BY GROUPING SETS .
If you want one row of output for each row of the table, but you want to include something that reflects the group as a whole (again, e.g, total inv_prive or average extension_pcie), then you can us analytic functions. (Most of the aggregate functions, such as SUM and AVG have analytic counterparts that can get the same results without collapsing the result set down to one row per group.)
Here's an example of how to use GROUP BY GROUPING SETS.
Way we're interested in employees' salary and commission from the scott.emp table:
SELECT deptno
, ename
, sal
, comm
FROM scott.emp
ORDER BY deptno
, ename
;Output:
` DEPTNO ENAME SAL COMM
10 CLARK 2450
10 KING 5000
10 MILLER 1300
20 ADAMS 1100
20 FORD 3000
20 JONES 2975
20 SCOTT 3000
20 SMITH 800
30 ALLEN 1600 300
30 BLAKE 2850
30 JAMES 950
30 MARTIN 1250 1400
30 TURNER 1500 0
30 WARD 1250 500Now say we want to add the total income (sal + comm, or just sal if there is no comm) to each row, and also to add a row for each department showing the total sal, comm and income in that department, like this:
` DEPTNO ENAME SAL COMM INCOME
10 CLARK 2450 2450
10 KING 5000 5000
10 MILLER 1300 1300
10 8750 8750
20 ADAMS 1100 1100
20 FORD 3000 3000
20 JONES 2975 2975
20 SCOTT 3000 3000
20 SMITH 800 800
20 10875 10875
30 ALLEN 1600 300 1900
30 BLAKE 2850 2850
30 JAMES 950 950
30 MARTIN 1250 1400 2650
30 TURNER 1500 0 1500
30 WARD 1250 500 1750
30 9400 2200 11600(This relies on the fact that ename is unique.) Getting those results is pretty easy, using GROUPING SETS:
SELECT deptno
, ename
, SUM (sal) AS sal
, SUM (comm) AS comm
, SUM ( sal
+ NVL (comm, 0)
) AS income
FROM scott.emp
GROUP BY GROUPING SETS ( (deptno)
, (deptno, ename)
ORDER BY deptno
, ename
;Notice that we're displaying SUM (sal) on each row. Most of the rows in the output are "groups" consisting of only one row from the table, so the SUM (sa) for that goup will be the sal for the one row in the group.
Edited by: Frank Kulash on Nov 23, 2011 2:03 PM
Added GROUPING SET example
Similar Messages
-
Need help with SQL Query with Inline View + Group by
Hello Gurus,
I would really appreciate your time and effort regarding this query. I have the following data set.
Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*20.00*-------------19
1234567----------11223--------------7/5/2008-----------Adjustment for bad quality---------44345563------------------A-----------------10.00------------19
7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765--------------------I---------------------30.00-------------19
Please Ignore '----', added it for clarity
I am trying to write a query to aggregate paid_amount based on Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number and display description with Invoice_type 'I' when there are multiple records with the same Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number. When there are no multiple records I want to display the respective Description.
The query should return the following data set
Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*10.00*------------19
7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765-------------------I---------------------30.00--------------19
The following is my query. I am kind of lost.
select B.Description, A.sequence_id,A.check_date, A.check_number, A.invoice_number, A.amount, A.vendor_number
from (
select sequence_id,check_date, check_number, invoice_number, sum(paid_amount) amount, vendor_number
from INVOICE
group by sequence_id,check_date, check_number, invoice_number, vendor_number
) A, INVOICE B
where A.sequence_id = B.sequence_id
Thanks,
NickIt looks like it is a duplicate thread - correct me if i'm wrong in this case ->
Need help with SQL Query with Inline View + Group by
Regards.
Satyaki De. -
Need help with my iPhone 5 and my Macbook Pro.
Need help with my iPhone 5 and my Macbook Pro. I was purchased some music on itunes at my mac. Some reason I deleted those music from both on Mac and iPhone 5. Today, I went to my iPhone iTunes store inside of iCloud to redownload my puchased. But those song won't able to sync back to my iTunes library on my Mac. Can anyone help me with that ??....
iPhone 5, iOS 6.0.1You've posted to the iTunes Match forum, which your question does not appear to be related to. You'll get better support responses by posting to either the iTunes for Mac or iTunes for Windows forum. Which ever is more appropriate for your situation.
-
I need help with my text tone and I have ring tone. no text tone for the 4s.
I need help with my text tone. I have ring tone no text tone. I have a 4s.
Hi Sarar2333! Let's get your text tones working again!
Here's a link with instructions how to enable and change your alert sounds for your text/notification settings on your iPhone 4S: http://vz.to/1stiF8a. You can ensure text tones are enabled by selecting a tone in the "Text Tone" setting. Let me know how that works out for you. Thanks!
AnthonyTa_VZW
Follow us on Twitter @VZWSupport -
Need help with buying graphics card and ram for MSI 865PE NEO 2-V
Hi,
I want to buy 1GB of ram for motherboard MSI 865PE NEO 2-V I need help with finding correct parts.
I also want to buy 512Mb or 1GB graphics card.
as i said before i need help with finding correct ones so they match motherboard, I would appreciate if any one would post link to cheap and fitting parts.
I found graphics card allready, i just need to know if it will fit.
the card is
NVIDIA GeForce 7600 GS (512 MB) AGP Graphics Card
Thanks for help.here you can see test reports for your mobo:
http://www.msi.com/product/mb/865PE-Neo2-V.html#?div=TestReport -
Need help with clickbios ii terminolgy and values. Z77A-GD65 / 3770k
Hello All
I recently purchased a Z77A-GD65 board and after searching I've found the differences in terminology between this and my previous Asus board but still have a couple of settings I cant find any info on.
System Specs:
motherboard: msi z77a-gd65
cpu: intel 3770k
ram: corsair vengeance 2133mhz 1.5v
psu: corsair 850w
First things first is I believe I am running in turbo oc mode. I've selected the oc genie tab on the center right of the bios screen and proceeded to change settings there. With cpu voltage on auto and vdroop set to 50% at 4.6ghz. (I'll try and get screenshots of bios settings soon)
The following are the terms I need help with:
In the my oc genie section;
1. Long duration power limit
2. Long duration maintained
3. Short duration power limit
In the main overclocking section;
4. Digital Compensation level (not in owners manual, options auto/high)
5. Cpu core ocp expander (enabled for overclock 4.5ghz+?)
In the CPU Features section;
6. long duration power limit w (does "w" stand for watts?)
7. long duration maintained s (does "s" stand for seconds?)
8. short duration power limit
9. primary plane current limit a (does "a" stand for amps?)
10. secondary plane current limit
11. primary plane turbo power limit
12. secondary plane turbo power
I know those are a lot of settings, but would appreciate any simple definitions as to what they do and recommended values for mild overclocking (4.5-4.80)
Also on my previous board (Asus P8P67 Pro) my 3770k was stable in prime95 for 18 hrs at 4.5ghz fixed 1.155v with only ram timings put in manually and LLC set to extreme.(or whatever max is called in asus bios) Voltage was fixed and everything else was defailts.Well I'm back. Been digging around for a few days and found some answers to my questions.
First things first s that for some reason I could not adjust voltage values with the + or - symbols. Clearing cmos did not help this. I had to reflash the bios to get this functionality back as well as clearing cmos before and after the flash.
So I figured out the values in the oc genie section are the same as the normal section but only used when your using the oc genie. (numbers 1-3)
Digital compensation level and ocp expander should be set to high and enabled respectively when going for higher overclocks. (4 and 5)
Now for the rest of my questions ( 6 through 12) I have found suggested settings and some info after hours and hours of searching but still have a couple of questions about them.
Long/short duration power limit, and primary/secondary plane turbo limit. I see suggestion settings of 250 or 255. I take it this is simply max supplied watts to the chip? If so why the 250/255 values? Is that the highest the board will give? Is plane turbo limit related to the enhanced turbo stated and how much wattage can be drawn there while the other limit is for any non turbo frequencies?
Long duration maintained, I've seen 60 suggested a lot. Why is this?
There's not an over abundance of info on these boards as compared to asus so it seems info is a little less documented and video tutorials explaining things are next to none.
Any help would be appreciated. Thanks -
I need help with my phone it is not ringing and I cant figure where in here to make it so it will something has been pushed so I cant hear any calls or texts
Not when you insist on being so impatient.
These are user to user support forums. No one here is paid to read or respond to messages.
Try explaining the issue instead of the jumbled, rambling mess of a title and we will be happy to assist. -
Need help with SQL retrieval for previous month till current date
Hi ,
Need help generating statistics from previous month from date of enquiry till current date of enquiry.
and have to display it according to date.
Date of enquiry : 03/02/2012
Application Type| 01/01/2012 | 02/01/2012 | 03/01/2012 |...... | 31/01/2012 | 01/02/2012 | 02/02/2012 | 03/02/2012 |
sample1 20 30 40
sample 2 40 40 50
sample 3 50 30 30
Hope you guys can help me with this.
RegardsHi,
932472 wrote:
Scenario
1)If i run the query at 12 pm on 03/2/2012. the result i will have to display till the current day.
2)displaying the count of the application made based on the date.
Application type 01012012 | 02012012 | 03012012 | ..... 01022012| 02022012|03022012
sample 1 30 40 50 44 30
sample 2 35 45 55
sample 3 36 45 55Explain how you get those results from the sample data you posted.
It would help a lot if you posted the results in \ tags, as described in the forum FAQ. {message{id=9360002}
SELECT application_type as Application_type
, COUNT (CASE WHEN created_dt = sysdate-3 THEN 1 END) AS 01012012 (should be getting dynamically)
, COUNT (CASE WHEN created_dt = sysdate-4 THEN 1 END) AS 02022012
, COUNT (CASE WHEN created_dt = sysdate-5 THEN 1 END) AS 03022012
, COUNT (CASE WHEN created_dt = sysdate-6 THEN 1 END) AS 04022012
FROM table_1
GROUP BY application_type
ORDER BY application_typeThat's the bais idea.
You can simplify it a little by factoring out the date differences:WITH got_d AS
SELECT qty
, TRUNC ( dt
- ADD_MONTHS ( TRUNC (SYSDATE, 'MON')
, -1
) AS d
FROM table1
WHERE dt >= ADD_MONTHS ( TRUNC (SYSDATE, 'MON')
, -1
AND dt < TRUNC (SYSDATE) + 1
SELECT SUM (CASE WHEN d = 1 THEN qty END) AS day_1
, SUM (CASE WHEN d = 2 THEN qty END) AS day_2
, SUM (CASE WHEN d = 62 THEN qty END) AS day_62
FROM got_d
See the links I mentioned earlier for getting exactly the right number of columns, and dynamic column aliases. -
table structure
Column Data __Type
game_id______Integer
home_team___String
away_team___String
home_score___Integer
away_score___Integer
game_note____String
The XML document should be displayed as:
<lacrosse>
<title>College Lacrosse Results</title>
_<team>
____team_name
____<wins>number of wins</wins>
____<losses>number of losses</losses>
____<opponent>
_________opponent_name
_________<location>home or away</location>
_________<for>goals scored</for>
_________<against>goals given up</against>
____</opponent>
____<opponent>
____</opponent>
_</team>
_<team>
_</team>
</lacrosse>
I'm not really sure what my Statements to query the database should be.
My code so far is as such:
import java.sql.*;
import java.io.*;
import org.w3c.dom.*;
import org.apache.xerces.dom.*;
import org.apache.xml.serialize.*;
import javax.xml.*;
import org.apache.xml.serialize.OutputFormat;
public class DBtoXML {
public static final String DB_URL = "jdbc:mysql://localhost/test";
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String USERNAME = "'keith'@'localhost'";
public static final String PASSWORD = "keith";
public static final String OUTPUTFILE = "C:\\Test.xml";
public static final String SQL1 = "";
* @param args
public static void main(String[] args)
throws ClassNotFoundException
// make JDBC connection with Xerxes
try
Class.forName(DRIVER).newInstance();
Connection connection = DriverManager.getConnection(DB_URL);
// retrieve query result from database, store in ResultSet object
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(SQL1);
// build scores XML DOM
Document xmlDoc = buildScoresXML(resultSet);
// write to flat file
File outputFile = new File(OUTPUTFILE);
printDOM(xmlDoc, outputFile);
connection.close();
catch (InstantiationException ie)
ie.printStackTrace();
catch (SQLException sqle)
sqle.printStackTrace();
catch (IllegalAccessException iae)
System.out.println("Error generating connection: " + iae);
catch (Exception e)
System.out.println(e);
} //end main()
* buildScoresXML() - build Document from MySQL database
* @param resultSet
* @return - XML object to main() to be written to flat file
* @throws Exception
private static Document buildScoresXML(ResultSet rs)
throws Exception
Document xmlDoc = new DocumentImpl();
// create root element
Element rootElement = xmlDoc.createElement("lacrosse"); //has children
xmlDoc.appendChild(rootElement);
while(rs.next())
// create elements child elements of lacrosse (title, team)
Element title = xmlDoc.createElement("title");
rootElement.appendChild(title);
Element team = xmlDoc.createElement("team"); //has children
rootElement.appendChild(team);
// create child elements of team (wins, losses, opponent)
Element wins = xmlDoc.createElement("wins");
team.appendChild(wins);
Element losses = xmlDoc.createElement("losses");
team.appendChild(losses);
Element opponent = xmlDoc.createElement("opponent"); //has children
team.appendChild(opponent);
// create child elements of opponent (location, for, against)
Element location = xmlDoc.createElement("location");
opponent.appendChild(location);
Element goalsFor = xmlDoc.createElement("for");
opponent.appendChild(goalsFor);
Element against = xmlDoc.createElement("against");
opponent.appendChild(against);
return xmlDoc;
} //end buildScoresXML()
* printDOM() - write contents of XML document passed onto it to a file
* @param xmlDoc
* @param outputFile
* @throws Exception
private static void printDOM(Document xmlDoc, File outputFile)
throws Exception
OutputFormat outputFormat = new OutputFormat("XML", "UTF-8", true);
FileWriter fileWriter = new FileWriter(outputFile);
XMLSerializer xmlSerializer = new XMLSerializer(fileWriter, outputFormat);
xmlSerializer.asDOMSerializer();
xmlSerializer.serialize(xmlDoc.getDocumentElement());
} // end DBtoXML
Not sure where to go from here
Edited by: habituallinecrosser on Mar 23, 2009 2:10 PMI apologize for that scatter-brained, half-arsed post there =(
It's not becoming of me to clutter the board with that, nor to be so vague.
Anyway...
Briefly, the requirements for this assignment are:
To create the an XML document in the above format, using JDBC and DOM, from the data stored within the scores database, which contains the above listed fields.
I have been supplied with a CSS file and an XSD file, too.
My line of work is not software development, and I am not familiar with the XML APIs, nor JDBC.
I'm somewhat thinking out loud here, but my approach would be:
1. create a Team class with
String name
int wins
int losses
ArrayList games
the inner class Games will have:
String opponentName
Enum location (home, away)
int goalsScored
int goalsAllowed
2. create class TeamsLoader
-will extract each individual team from the scores table (using a "select distinct home_team from scores", followed by query to pick up any teams that were only in away_team column) and add them to an ArrayList<Team>
3. create class TeamRecordsCollector
-will produce ResultSet of "select* from scores" statement
-pass each index of ArrayList<Team> through each game_ID and compare team.Name with resultSet.home_team || resultSet.away_team for equality, and if equal, add the data to the Team
5. create a Document (rootElement = lacrosse) and iterating through the ArrayList<team> using a loop, adding the Elements during the loop
Is this making sense?
6. wrap FileWriter, OutputFormat in XMLSerializer to create flat file -
Need Help with External Hard drives and too much music
I am not terribly tech-savvy, and I need your help. I have a G5 PPC dual processor with an internal 250GB drive. I have two seagate firewire/USB2 external hard drives. One is 250GB and one is 350GB. I want to know how to use them to get my Mac to run faster and better.
My original hard drive is 7GB shy of being full. Almost half of this is my itunes library which is over 100GB. The older (250GB) hard drive has about 150GB of photos/videos.
My Mac is running slow as molasses and when I power up the external hard drives it slows down to what I recall my original Mac Plus ran like.
I use the G5 primarily to work with photos, illustrations and creating the occasional DVD with video and photos. the apps I use most often are Photoshop, Illustrator and Painter. I always listen to music while work.
I hope all of this information is helpful! Here is my question:
What is the best way for me to set up and use these external hard drives to return my G5 to its original blazing (to me) fast speed?
PPC G5 Mac OS X (10.4.9)I think you should look at adding two 500GB internal drives. I'd say Maxtor MaxLine Pro for cost, but they also run much warmer (43ºC even when nearly doing zilch) so I'd go with WD RE2 500GB for $40 ea. more.
dump whatever you don't need, trash anything that is hogging space and is just temp file or useless cache. Web browsers can leave behind a ton of small files eating up tens of MBs.
Use SuperDuper to backup/clone your drive.
Disk Warrior 4 to repair (after it gets to 15% free, or just forget for now).
A 250GB drive formats to 240GB and you have ~3% free it looks like.
For every data drive plan to have two backup drives.
Keep your boot drive to 40% used.
And your data drive to 60%.
Backups can go a little higher.
Drives are cheap and inexpensive, especially for the space and performance. And they have improved SATA over the years it has been out.
By doing a backup followed by erasing your drive, and then restoring it, using SuperDuper, which optimizes the organization, skips copying temp files that aren't needed, it also defragments your files. I would do backup daily to different sets that you "rotate." And before any OS update. And do the erase and restore probably every 2 months.
Make sure you keep one drive partition somewhere that is just your disk utility emergency boot drive that is not a copy of working system, used for doing repairs like running Disk Warrior and Disk Utility.
You may need to repair; backup; even erase and restore your external drives. Rather than spend on vendor made case, just pick up a good FireWire case either with drive, or bare (and add your own). I think it'd add 500GB FW drive though.
Why?
To begin backup of your current drive. To leave your other FW drives "as is" for now.
Then install a new internal 500GB drive as well so you now have a good current backup, and you have moved your data off 250GB to 500GB. If anything happens, you have one off line FW backup.
Then begin to clean up, organize, and get your FW drives working. It sure sounds like they have had some directory or file problems.
You can find a lot of Firewire and SATA drive choices over at OWC:
http://www.macsales.com/firewire/ -
Need Help with Photomerge Group Shot
I'm trying to photomerge a group shot and having trouble with it. The person I'm trying to cut out of the source photo gets plopped into the middle of the final photo and I can't line her up with in final shot. Is there a way I can relocate the section that gets pasted into the final photo? I'm also have trouble with aligning the photo--how do you know what points to select in the fist and second photo? I've been playing with it, but the photos get terribly distorted.
Appreciate any help. I was expecting Photoshop Elements 10 to make this easy, and so far, it hasn't impressed me.
Thanks,
TerriOK, here we go:
Make a selection (in the main image) of the area you want to be replaced:
Open your other image, select the head to use, and copy it to the Clipboard. (I simply used another one of the heads in this photo.)
Back in the main image, use Edit...Paste into Selection:
Change to the Move Tool and move the pasted-in image to where it looks best:
You already know what to do next with the Clone Tool. (Probably have to use Layer...Flatten Image to get rid of all the selections and layers so the Clone Tool can do its work....)
Ken
P.S., Looks like you did a real good job with the girl on the left.
P.P.S., The image is a bit too small for us to do precision work (but it's OK for this example). Next time you can try something about 2 or 3 times larger and see if the forum software accepts it. -
Need help with ext. SWF and XML
I'm trying to create an External SWF to load into my main
site (photography).
Home | Portfolio | Published Work | Bio | Contact
The SWF I want to load externally is Portfolio because it has
5 sections
Those 5 sections are:
-Editorial
-Adventure
-Fly Fishing
-Multimedia
-Weddings
I'm looking to keep this dynamic as possible, but I'm one of
those guys who doesn't write code from scratch, but knows AS well
enough to modify a base or a generic template if ever given. It
would be easier to use one subsection as an example, which could be
applied to all others.
e.g. "Fly Fishing" 1-Main container; 5-10 thumbnails (1
dyanamic thumbnailcontainer)
- I don't know XML (but can modify it). basically having an
ID tag for each image, possibly dynamically generate a thumbnail
too. Also have a spot for dynamic text to load in (captions with
multiple text lines for images upon onRelease - maybe this could be
it's own MC that loads on top of the main photo container)
- on (release) on a thumbnail: there would be a little
information icon that would appear. If you mouse over, it would
overlay a layer over that specific ID photo, and the text appear.
RollOut it would fade out the layer above that specific ID photo.
- Transition: FadeOut/Blur/Exposure Blur, something
interesting to that nature.
- Thumbnails: is it just easier to create thumbnail images
manually, and just create a separate container?
- Image folders: I would imagine each section would have
it's own watch folder. For example "Fly Fishing" would be a folder
"/swfImg_flyFishing/", but perhaps having one XML file.
- XML file details
id
location
caption summary
title
As you can see, if I had one template to build off of, I
could repeat it self for the others. I need help and if there is a
flash component (free or purchase) that does at least 70% of what I
need, please share information. thank you!PortfolioI know doing a pushback to the client requires Flex Data
Services, but since I don't use FDS I can't tell you exactly how.
But look in the documentation about "pushing" data to the client.
Once you've figured out how to do that, you can trigger that push
once you've finished editing the xml file. You may want to ask over
in the FDS forum. -
Need help with SQL*Loader not working
Hi all,
I am trying to run SQL*Loader on Oracle 10g UNIX platform (Red Hat Linux) with below command:
sqlldr userid='ldm/password' control=issue.ctl bad=issue.bad discard=issue.txt direct=true log=issue.log
And get below errors:
SQL*Loader-128: unable to begin a session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Can anyone help me out with this problem that I am having with SQL*Loader? Thanks!
Ben PrusinskiHi Frank,
More progress, I exported the ORACLE_SID and tried again but now have new errors! We are trying to load an Excel CSV file into a new table on our Oracle 10g database. I created the new table in Oracle and loaded with SQL*Loader with below problems.
$ export ORACLE_SID=PROD
$ sqlldr 'ldm/password@PROD' control=prod.ctl log=issue.log bad=bad.log discard=discard.log
SQL*Loader: Release 10.2.0.1.0 - Production on Tue May 23 11:04:28 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL*Loader: Release 10.2.0.1.0 - Production on Tue May 23 11:04:28 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Control File: prod.ctl
Data File: prod.csv
Bad File: bad.log
Discard File: discard.log
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table TESTLD, loaded from every logical record.
Insert option in effect for this table: REPLACE
Column Name Position Len Term Encl Datatype
ISSUE_KEY FIRST * , CHARACTER
TIME_DIM_KEY NEXT * , CHARACTER
PRODUCT_CATEGORY_KEY NEXT * , CHARACTER
PRODUCT_KEY NEXT * , CHARACTER
SALES_CHANNEL_DIM_KEY NEXT * , CHARACTER
TIME_OF_DAY_DIM_KEY NEXT * , CHARACTER
ACCOUNT_DIM_KEY NEXT * , CHARACTER
ESN_KEY NEXT * , CHARACTER
DISCOUNT_DIM_KEY NEXT * , CHARACTER
INVOICE_NUMBER NEXT * , CHARACTER
ISSUE_QTY NEXT * , CHARACTER
GROSS_PRICE NEXT * , CHARACTER
DISCOUNT_AMT NEXT * , CHARACTER
NET_PRICE NEXT * , CHARACTER
COST NEXT * , CHARACTER
SALES_GEOGRAPHY_DIM_KEY NEXT * , CHARACTER
value used for ROWS parameter changed from 64 to 62
Record 1: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 3: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 4: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 5: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 6: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 7: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 8: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 9: Rejected - Error on table ISSUE_FACT_TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 10: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 11: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 12: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 13: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 14: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 15: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 16: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 17: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 18: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 19: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 20: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 21: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 22: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 23: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 24: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 39: Rejected - Error on table TESTLD, column DISCOUNT_AMT.
Column not found before end of logical record (use TRAILING NULLCOLS)
MAXIMUM ERROR COUNT EXCEEDED - Above statistics reflect partial run.
Table TESTLD:
0 Rows successfully loaded.
51 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Space allocated for bind array: 255936 bytes(62 rows)
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 51
Total logical records rejected: 51
Total logical records discarded: 0
Run began on Tue May 23 11:04:28 2006
Run ended on Tue May 23 11:04:28 2006
Elapsed time was: 00:00:00.14
CPU time was: 00:00:00.01
[oracle@casanbdb11 sql_loader]$
Here is the control file:
LOAD DATA
INFILE issue_fact.csv
REPLACE
INTO TABLE TESTLD
FIELDS TERMINATED BY ','
ISSUE_KEY,
TIME_DIM_KEY,
PRODUCT_CATEGORY_KEY,
PRODUCT_KEY,
SALES_CHANNEL_DIM_KEY,
TIME_OF_DAY_DIM_KEY,
ACCOUNT_DIM_KEY,
ESN_KEY,
DISCOUNT_DIM_KEY,
INVOICE_NUMBER,
ISSUE_QTY,
GROSS_PRICE,
DISCOUNT_AMT,
NET_PRICE,
COST,
SALES_GEOGRAPHY_DIM_KEY
) -
Hi All,
I have a problem in the query below. When I run the query I got a pop-up screen to ente value for
:total_balance,
:emp_code,
:from_date,
:to_date
total_balance supose to be a result of a calculation.
Your assistance is apreciated. Thanks,
Ribhi
select FK_VOUCHERSERIAL_N,
FK_VOUCHERVALUE_DA,
DESCRIPTION,
nvl(AMOUNT,0) amount,
TYPE,
Accnt101.postive_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) postive_amount,
Accnt101.negative_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) negative_amount,
Accnt101.total_balanceformula(:total_balance, EMPLOYEE_TRANSACTI.TYPE,Accnt101.negative_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) ,Accnt101.postive_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) , nvl(AMOUNT,0)) total_balance
from EMPLOYEE_TRANSACTI
where FK_EMPLOYEENUMBER0=:emp_code
and STATUS=1
and FK_VOUCHERVALUE_DA<=:to_date
and FK_VOUCHERVALUE_DA>=:from_date
and ((TYPE >7 and TYPE <16)
or (TYPE >34 and TYPE <43)
or (TYPE =7)
or (TYPE =18)
or (TYPE >26 and TYPE <35)
or (TYPE =17)
OR (TYPE = 60)
OR (TYPE = 70)
OR (TYPE = 72)
OR (TYPE = 73)
OR (TYPE = 74)
or (type = 21)
or (type =24)
or (type = 81)
or (type = 82))
order by FK_VOUCHERVALUE_DA asc, FK_VOUCHERSERIAL_N asc, type descHi Satyaki,
My problem is with SQL and PL/SQL codd. I managed to convert some of my reports and now I'm facing a problem with converted SQL and PL/SQL code. To give you an Idea the following is a sample of a converted report.
Pls have a look. (p.s how can i post formated text)
Thanks,
Ribhi
1 - XML template file
<?xml version="1.0" encoding="UTF-8" ?>
- <dataTemplate name="Accnt101" defaultPackage="Accnt101" version="1.0">
- <properties>
<property name="xml_tag_case" value="upper" />
</properties>
- <parameters>
<parameter name="FROM_DATE" dataType="date" defaultValue="01/01/1998" />
<parameter name="TO_DATE" dataType="date" defaultValue="31/12/1998" />
<parameter name="EMP_CODE" dataType="number" defaultValue="44" />
</parameters>
<lexicals />
- <dataQuery>
- <sqlStatement name="employee_trans">
- <![CDATA[
select FK_VOUCHERSERIAL_N,
FK_VOUCHERVALUE_DA,
DESCRIPTION,
nvl(AMOUNT,0) amount,
TYPE,
Accnt101.postive_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) postive_amount,
Accnt101.negative_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) negative_amount,
Accnt101.total_balanceformula(:total_balance, EMPLOYEE_TRANSACTI.TYPE,Accnt101.negative_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) ,Accnt101.postive_amountformula(EMPLOYEE_TRANSACTI.TYPE, nvl(AMOUNT,0)) , nvl(AMOUNT,0)) total_balance
from EMPLOYEE_TRANSACTI
where FK_EMPLOYEENUMBER0=:emp_code
and STATUS=1
and FK_VOUCHERVALUE_DA<=:to_date
and FK_VOUCHERVALUE_DA>=:from_date
and ((TYPE >7 and TYPE <16)
or (TYPE >34 and TYPE <43)
or (TYPE =7)
or (TYPE =18)
or (TYPE >26 and TYPE <35)
or (TYPE =17)
OR (TYPE = 60)
OR (TYPE = 70)
OR (TYPE = 72)
OR (TYPE = 73)
OR (TYPE = 74)
or (type = 21)
or (type =24)
or (type = 81)
or (type = 82))
order by FK_VOUCHERVALUE_DA asc, FK_VOUCHERSERIAL_N asc, type desc
]]>
</sqlStatement>
- <sqlStatement name="employee">
- <![CDATA[
select NAME,NUMBER0
from EMPLOYEE
where NUMBER0=:emp_code
]]>
</sqlStatement>
</dataQuery>
<dataTrigger name="beforeReportTrigger" source="Accnt101.beforereport" />
- <dataStructure>
- <group name="G_employee_trans" dataType="varchar2" source="employee_trans">
<element name="FK_VOUCHERSERIAL_N" dataType="number" value="FK_VOUCHERSERIAL_N" />
<element name="FK_VOUCHERVALUE_DA" dataType="date" value="FK_VOUCHERVALUE_DA" />
<element name="DESCRIPTION" dataType="varchar2" value="DESCRIPTION" />
<element name="AMOUNT" dataType="number" value="AMOUNT" />
<element name="postive_amount" dataType="number" value="postive_amount" />
<element name="negative_amount" dataType="number" value="negative_amount" />
<element name="total_balance" dataType="number" value="total_balance" />
<element name="TYPE" dataType="number" value="TYPE" />
<element name="CS_1" function="sum" dataType="number" value="G_employee_trans.total_balance" />
</group>
- <group name="G_employee" dataType="varchar2" source="employee">
<element name="NUMBER0" dataType="number" value="NUMBER0" />
<element name="NAME" dataType="varchar2" value="NAME" />
</group>
<element name="balance" dataType="number" value="Accnt101.balance_p" />
<element name="CS_2" function="count" dataType="number" value="G_employee.NUMBER0" />
<element name="CS_3" function="count" dataType="number" value="G_employee_trans.AMOUNT" />
</dataStructure>
</dataTemplate>
2 - PLS/SQL package
CREATE OR REPLACE PACKAGE Accnt101 AS
from_date date;
to_date date;
emp_code number;
balance number := 0 ;
function postive_amountformula(TYPE in number, amount in number) return number ;
function negative_amountformula(TYPE in number, amount in number) return number ;
function BeforeReport return boolean ;
function total_balanceformula(total_balance in number, TYPE in number, negative_amount in number, postive_amount in number, amount in number) return number ;
Function balance_p return number;
END Accnt101;
3- Package Body
CREATE OR REPLACE PACKAGE BODY Accnt101 AS
function postive_amountformula(TYPE in number, amount in number) return number is
begin
if ((TYPE>26 and TYPE<35)
or (TYPE=17))
then
return(amount);
elsif (type = 70)and (amount >=0) then
return (amount) ;
elsif (type = 72)and (amount >=0) then
return (amount) ;
elsif (type = 73)and (amount >=0) then
return (amount) ;
elsif (type = 74)and (amount >=0) then
return (amount) ;
elsif (type = 60)and (amount >=0) then
return (amount) ;
else
return (null) ;
end if;
RETURN NULL; end;
function negative_amountformula(TYPE in number, amount in number) return number is
begin
if ((TYPE>7 and TYPE<16)
or (TYPE >34 and TYPE <43)
or (TYPE=7)
or (TYPE=18)
or (type=21)
or (type=24)
or (type= 81)
or (type=82))
then
return(amount);
elsif (type = 70)and (amount <0) then
return (abs (amount)) ;
elsif (type = 72)and (amount <0) then
return (abs (amount)) ;
elsif (type = 73)and (amount <0) then
return (abs (amount)) ;
elsif (type = 74)and (amount <0) then
return (abs (amount)) ;
elsif (type = 60)and (amount <0) then
return (abs(amount)) ;
else
return (null) ;
end if;
RETURN NULL; end;
function BeforeReport return boolean is
var_pos number(15,3) ;
var_neg number(15,3) ;
beg_bal number(15,3) ;
Begin
begin
select sum (nvl(amount,0)) into beg_bal
from EMPLOYEE_TRANSACTI
where (TYPE=99 or type = 92 or type = 93 or type = 94)
and to_char(from_date,'YYYY')=to_char(date0,'YYYY')
and FK_EMPLOYEENUMBER0=emp_code;
EXCEPTION
WHEN NO_DATA_FOUND THEN
beg_bal := 0;
end;
begin
select sum(nvl(amount,0)) into var_pos
from EMPLOYEE_TRANSACTI
where
(TYPE=17
or type=60
OR TYPE=70
oR TYPE=72
OR TYPE=73
OR TYPE=74
or (TYPE>26 and TYPE<35))
and fk_vouchervalue_da<from_date
and fk_vouchervalue_da>= trunc(from_date,'year')
and FK_EMPLOYEENUMBER0=emp_code;
EXCEPTION
WHEN NO_DATA_FOUND THEN
var_pos := 0;
end;
Begin
select sum(nvl(amount,0)) into var_neg
from EMPLOYEE_TRANSACTI
where ((TYPE>7 and TYPE<16)
or (TYPE >34 and TYPE <43)
or (TYPE=7)
or (TYPE=18)
or (type=21)
or (type=24)
or (type= 81)
or (type=82) )
and fk_vouchervalue_da<from_date
and fk_vouchervalue_da>= trunc(from_date,'year')
and FK_EMPLOYEENUMBER0=emp_code;
balance :=nvl(beg_bal,0) + nvl(var_pos,0) - nvl(var_neg,0);
return(true);
EXCEPTION
WHEN NO_DATA_FOUND THEN
balance :=nvl(beg_bal,0) + nvl(var_pos,0) - nvl(var_neg,0);
RETURN (TRUE);
end;
RETURN NULL; end;
function total_balanceformula(total_balance in number, TYPE in number, negative_amount in number, postive_amount in number, amount in number) return number is
begin
if total_balance is null then
if ((TYPE>7 and TYPE<16)
or (TYPE >34 and TYPE <43)
or (TYPE=7)or (TYPE=18)
or (type=21) or (type=24)
or (type= 81)
or (type=82))
then
return(balance-negative_amount);
elsif ((TYPE>26 and TYPE<35) or (TYPE=17))
then
return(balance+postive_amount);
elsif (type=70 or type=72 or type=73 or type=74
or type=60) and (amount >=0) then
return(balance+postive_amount);
elsif (type=70 or type=72 or type=73 or type=74
or type=60) and (amount <0) then
return(balance-negative_amount);
end if;
else
if ((TYPE>7 and TYPE<16)
or (TYPE >34 and TYPE <43)
or (TYPE=7)or (TYPE=18)
or (type=21) or (type=24)
or (type= 81)
or (type=82))
then
return(total_balance-negative_amount);
elsif ((TYPE>26 and TYPE<35) or (TYPE=17))
then
return(total_balance+postive_amount);
elsif (type=70 or type=72 or type=73 or type=74
or type=60) and (amount >=0) then
return(total_balance+postive_amount);
elsif (type=70 or type=72 or type=73 or type=74
or type=60) and (amount <0) then
return(total_balance-negative_amount);
end if;
end if ;
RETURN NULL; end;
Functions to refer Oracle report placeholders
Function balance_p return number is
Begin
return balance;
END;
END Accnt101 ; -
I need help with SQL Server 2012
Hi Everyone,
I am using the query pane to create a database with the data file and log file but keep getting this error message. I will be glad if someone can help.
You can see below the syntax:
Msg 5123, Level 16, State 1, Line 1
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file 'C:\project.mdf'.
Msg 1802, Level 16, State 4, Line 1
CREATE DATABASE failed. Some file names listed could not be created. Check related errors..
CREATE DATABASE project
ON
(Name= 'project_dat',
FILENAME ='C:\project.mdf',
SIZE = 10,
MAXSIZE = 100,
FILEGROWTH = 5)
LOG ON
(NAME = project_log,
FILENAME = 'C:\project.ldf',
SIZE =40,
MAXSIZE = 100,
FILEGROWTH = 10);Look at the second number in your constraints ValidBirthYear and ValidDeathYear. Do you mean to limit it to years between 1000-1199 and 2000-2199? Also, your ValidDeathYear constraint is using DateOfBirth.
CONSTRAINT
ValidBirthYear
CHECK
(DateOfBirth LIKE '[1-2]
[0-1] [0-9] [0-9]'),
CONSTRAINT
ValidDeathYear
CHECK
(DateOfBirth LIKE '[1-2]
[0-1] [0-9] [0-9]'));
I'm very much a beginner so that may not fix your issue but it sure looks like the cause of the second message to me.
Maybe you are looking for
-
Can you convert a 3D object back into a 2D layer?
I am drawing out a map of a world and need to design the poles while the layer is in a 3D sphere to prevent distortion. In CS5, I would turn the layer into a 3D.sphere, draw on it to map out the land masses, then turn it back into a 2D layer and refi
-
Deny access from deleting *.txt file?
HI all, I have created a *.txt file from xcode with objective c using NSFileManager.Also i gave permission to this file like below, [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedLong:0000u] forkey : NSFilePosixPermissions]; so that t
-
I have a context node called ERROR_MESSAGE, with a single attribute called MSG of type BAPI_MSG. I encounter an error stating "Dynamic type conflict when assigning references" at the following point in my code: lo_nd_error_message->bind_elements( err
-
Dreamweaver FTP connection settings (CS5)
I am wondering if anyone can help me with my issue I am having. I am running a big website and have been using Dreamweaver CS4 in the past and that worked like a charm so I decided to upgrade to CS5 and some things got weird. When entering in my serv
-
Odd ... Log & Capture won't open with a particular camcorder connected
Actually ... Final Cut Pro protests in general ... sometimes completely locks up with the dreaded spinning color wheel when this one Panasonic Camcorder is connected. The moment I turn it off or unplug it - FCP returns to life! I have in the past cap