SQL statement - Get records with single customerid
Hi,
I have this SQL statement as follows:
SELECT debit_balance,credit_balance,customer_id
FROM table_balance
WHERE customer_id IN (SELECT customer_id
FROM table_balance
GROUP BY customer_id HAVING COUNT (customer_id)= 1)
{code}_Data:_
{code:java}
debit_balance: credit_balance: customer_id:
50 40 1
10 0 1
20 1 2
0 2 3
121 234 3
{code}_Expected results:_
{code:java}
debit_balance: credit_balance: customer_id:
20 1 2
{code}From my SQL statement, I think my code is not that efficient. How do I make it even more efficient?
Use analytics
SQL> with t as
2 (
3 select 50 a, 40 b,1 c from dual
4 union all
5 select 10, 0, 1 from dual
6 union all
7 select 20, 1, 2 from dual
8 union all
9 select 0, 2, 3 from dual
10 union all
11 select 121,234,3 from dual
12 )
13 select a,b,c
14 from (
15 select count(c) over(partition by c order by c) cnt, t.*
16 from t)
17 where cnt = 1
18 /
A B C
20 1 2
Similar Messages
-
INSERTED Table - When it gets populated with single or multiple rows?
Hi,
I'm trying to create a trigger which then insert to a table. i'm wondering when does the INSERTED table gets populated with single or multiple rows?
Should I always assume that the INSERTED Table will contains several rows? What does the scope of the INSERTED table in the trigger, isn't based on the user session?
The reason why i asked this is because as far as i know inserted table may contain several table when the trigger fires which is why I use cursor to insert records in the table ( there's a behind why i use cursor).
But if the inserted table will only contain a single record during the session of the trigger then i can avoid the cursor.
Thanks.But since we control the transaction process and we know for a fact that user will only be able to save a record one at a time, do we still expect multiple rows? I just want to have a clear concept on the INSERTED table.
...and then the DBA or someone else sees fit to enter a number of rows directly from a query window. And don't laugh. That is bound to happen sooner or later.
However, just because this can (and will) happen does not mean that you need to handle it on equal footing with the normal case user entering data through the application. What you cannot permit yourself to is to drop the DBA case on the floor, that is write
the trigger as if there would either be single-row inserts and produce incorrect results for multi-row inserts.
But, yes, allowing yourself to use a cursor, if you want to reuse the existing stored procedure is feasible. That is also the more drastic solution suggested by Tom to add an explicit check that disallows multi-row inserts.
Finally, permit me to comment on this:
Additionally, it's difficult to use the code below as i need to pass the identity id of tbl_A to tbl_B
You can use the OUTPUT clause to capture the values, but that requires that you have something you can map the identity values to in the columns you insert, and this is not always the case. However, there is a lot simpler solution to the problem: don't
use IDENTITY. IDENTITY is one of these over-used and over-abused features in SQL Server. You need it when you want to support high-concurrency inserts, because rolling your own requires a serialisation point. But with a moderate insertion frequency, IDENTITY
only gives you headache.
Erland Sommarskog, SQL Server MVP, [email protected] -
Getting result with single query
Hi,
I'm using db 10.2.0.1.0
I have a table emp_shift , with data like below
EmpCode Shift Effdate Default
1 SHFT1 02-jan-2012 N
1 SHFT2 04-jan-2012 Y
1 SHFT3 04-jan-2012 NSo if user inputs EmpCode and Effdate, based on that i've to take the latest record, with default = 'Y' (if any) else default 'N'
Suppose
Case 1 : Input Empcode:1 Date:10-jan-2012
Then i should get the below record
1 SHFT2 04-jan-2012 YCase 2 : Input Empcode:1 Date:03-jan-2012
Then i should get the below record
1 SHFT1 02-jan-2012 NI want this result with a single query, is this possible?
Thanks
DivyaHi Thank you both,
I'm trying this process through forms. and my forms version is 6i.
There where i'm trying the query with the cursor, i'm getting error
Encountered the symbol Order when expecting one of the following
.()...and my cursor is
Cursor cur_shft(vemp Varchar2,vdate Varchar2) is Select ESM_SHIFT_TYPE
from (Select ESM_SHIFT_TYPE from EMPLOYEE_SHIFT_MASTER
Where ESM_EMP_CODE = vemp
and ESM_EFF_DATE <= vdate
Order by ESM_EFF_DATE desc,Esm_Default desc)
Where rownum=1 ;Whats wrong? -
Files get open with single click sometimes
I recently started having this problem. When I browse through different image/video files, some of the files get open with one click only. This is really very annoying. I am event thinking to migrate back to Windows because of this problem.
How to reproduce the issue:
-> Open a folder that contains many images/video files
-> Click on anyone of them to select it
-> Now click outside the window. So, the finder goes out of the focus (but should stay visible)
-> Now, inside finder click any other image/video just once, it will open up automatically with just single clickIf you have access to a mouse, try using it. If everything is okay using the mouse, then it is likely trackpad related. Other troubleshooting.
Try setting up another admin user account to see if the same problem continues. If Back-to-My Mac is selected in System Preferences, the Guest account will not work. The intent is to see if it is specific to one account or a system wide problem. This account can be deleted later.
Isolating an issue by using another user account
If the problem is still there, try booting into the Safe Mode. Shut down the computer and then power it back up. Immediately after hearing the startup chime, hold down the shift key and continue to hold it until the gray Apple icon and a progress bar appear. The boot up is significantly slower than normal. This will reset some caches, forces a directory check, and disables all startup and login items, among other things. If the system operates normally, there may be 3rd party applications which are causing a problem. Try deleting/disabling the third party applications after a restart by using the application unistaller. For each disable/delete, you will need to restart if you don't do them all at once.
Safe Mode
Safe Mode - About
General information.
Isolating issues in Mac OS X
Troubleshooting Permission Issues
Step by Step to Fix Your Mac -
Muti sql statements execution issue with DB2 - iSeries
Hello,
I am encountering "[SQL0104] Token ; was not valid. Valid tokens: ). " error , when I execute below statement.
Using ; (semi colon) for sql statements separation.
Please let me know , how to fix it.
Thanks in advance.
<cfquery name="qInsertTo" datasource="dsn">
<cfloop from="1" to="25" index="i">
insert into test1(userId,firstname) values('xx#i#','fname#i#') ;
</cfloop>
</cfquery>
PS: I don't want to keep cfloop outside cfquery.Hi,
trhat would be possible for an Unix System ... but I'm on a Windows OS system and I already assign everybody with full modification rights ...
Thanks anyway for ur help I'll recheck it anyway sometimes its strange ...
greetings Lars -
Sql statement not working with for update
Hi, iam facing an error fetch out of sequence
when iam trying to execute a sql statement
Statement st=con.createStatement();
st.executeQuery(select mycolumn from table where jobno=1 for update);
the statement works well without " for update ".
any solutions????Hi,
The fetch out of sequence error occurs usually when you are trying to read from a cursor that has no data left(like EOF).
After executing the sql statement move the pointer to the first row (or the beginning of the resultset)
This is actually an oracle error bearing number :ORA:01002
Hope this helps.
Thanks,
Creator Team. -
Hello - really simple question here, I think anyway.
I have this line in my query -
WHERE table2.trans_date_time BETWEEN :p_from_date -1 AND :p_to_date + 1
Notice the -1 + 1, I had to put this in there because if I wanted all the records that have a date of 11/6/2007, and I enter 11/6/2007 and 11/6/2007 for the variables I get nothing back. But when I added the -1 + 1 it worked.
Why is this? The table2.trans_date_time column is a DATE data type.
Thanks!
Message was edited by:
computerGalHello compterGal
I agree with Boneist. What more your where clause statement example, will actually will return all records where the trans_date_time is between 10/06/2007 00:00 and 12/06/2007 00:00 inclusive. That is 2 days and 1 second's worth of data.
A possible solution if you're looking just for records on a specific day in this senario, but also allow date range capabilities then the following where clause example would be suitable:
WHERE trunc(table2.trans_date_time) BETWEEN :p_from_date AND :p_to_date
If the query runs slowly and you have an 8i or later database you can use function indexing to help spead the query up.
hope this helps.
Cheers
Q -
Getting Counts with single query
HI,
I need help in writing a query that gets account counts in a single query,
CREATE TABLE ACCOUNTINFO(
ACCOUNTID VARCHAR2(20 BYTE) NOT NULL,
ACCOUNTNO VARCHAR2(10 BYTE) NOT NULL,
LAST_DEPOSIT_DATE DATE,
BALANCE NUMBER(10,0));
I have a table like above and I am trying to write a query that gets
Count of accounts with deposits made in last 1 month,
Count of accounts with deposits made in last 2 months
Account Count with balance > 0,
Also, I need to join this ACCOUNTINFO with ACCOUNTMAIN to get name etc details
CREATE TABLE ACCOUNTINFO(
EMPID VARCHAR2(20 BYTE) NOT NULL,
FNAME VARCHAR2(30 BYTE) NOT NULL,
MNAME VARCHAR2(30 BYTE),
LNAME VARCHAR2(30 BYTE) NOT NULL,
DOB DATE,
ACCOUNTID VARCHAR2(20 BYTE));
Question, how to write a query since I getting too-many counts (I have only 3 in sample above, actual goes on like 3-6, 6-9 etc).SELECT SUM (CASE WHEN LAST_DEPOSIT>=ADD_MONTHS(SYSDATE,-1) THEN
1
ELSE
0
END
) COUNT_LAST_MONTH,
SUM (CASE WHEN LAST_DEPOSIT>=ADD_MONTHS(SYSDATE,-2) THEN
1
ELSE
0
END
) COUNT_LAST_TWO_MONTHS,
SUM (CASE WHEN BALANCE>0 THEN
1
ELSE
0
END
) COUNT_BALANCE_GREATER_ZERO
FROM ACCOUNTINFO -
I have records in my data that has ' example O'Neil etcs..
i know i can get the result of the name by entering Oneil;
however, my boss
wants to make it work for O'Neil as well.
how can I return names with ' in it?
TIAis wrote:
> I have records in my data that has ' example O'Neil
etcs..
>
> i know i can get the result of the name by entering
Oneil; however, my boss
> wants to make it work for O'Neil as well.
>
> how can I return names with ' in it?
Check out cfqueryparam.
Jochem
Jochem van Dieten
Adobe Community Expert for ColdFusion -
How to get this with Single query
Friends
I am sure using SQL analytical function, the following can be achieved using a single query:
Date_value | Cust_id | Customer_tenue | avg_bal
01-aug-09 | 111 | 0 | 1000
01-aug-09 | 112 | 1 | 2000
01-aug-09 | 113 | 2 | 900
01-aug-09 | 114 | 3 | 1250
01-sep-09 | 111 | 1 | 1200
01-sep-09 | 112 | 2 | 2000
01-sep-09 | 113 | 3 | 1900
01-sep-09 | 114 | 4 | 1250
01-oct-09 | 111 | 2 | 1100
01-oct-09 | 112 | 3 | 2200
01-oct-09 | 113 | 4 | 1900Expected result
If customer’s tenure is 0 then mark as ‘New’,
If customer’s balance is increased from last month then mark as ‘Augment’
If customer’s balance is same as last month then mark as ‘Maintain’
If customer’s balance is decreased from last month then mark as ‘Diminish’
Else ‘Left’
Help please....If customer’s tenure in last month is 0 then mark as ‘New’,There's not such case in test data... last month is October, isn't it?
SQL> with t as (select DATE '2009-08-01' Date_value, 111 Cust_id, 0 Customer_tenue, 1000 avg_bal from dual union all
2 select DATE '2009-08-01', 112 , 1 , 2000 from dual union all
3 select DATE '2009-08-01', 113 , 2 , 900 from dual union all
4 select DATE '2009-08-01', 114 , 3 , 1250 from dual union all
5 select DATE '2009-09-01', 111 , 1 , 1200 from dual union all
6 select DATE '2009-09-01', 112 , 2 , 2000 from dual union all
7 select DATE '2009-09-01', 113 , 3 , 1900 from dual union all
8 select DATE '2009-09-01', 114 , 4 , 1250 from dual union all
9 select DATE '2009-10-01', 111 , 2 , 1100 from dual union all
10 select DATE '2009-10-01', 112 , 3 , 2200 from dual union all
11 select DATE '2009-10-01', 113 , 4 , 1900 from dual)
12 select date_value, cust_id, avg_bal, oldbal, case when Customer_tenue=0 and nextbal is null then 'NEW'
13 when oldbal<avg_bal then 'Augment'
14 when oldbal=avg_bal then 'Maintain'
15 when oldbal>avg_bal then 'Diminish'
16 else 'Left' end status
17 from (select date_value, cust_id, customer_tenue, avg_bal, LEAD(avg_bal) over (partition by cust_id order by date_value desc) oldbal,
18 LAG(avg_bal) over (partition by cust_id order by date_value desc) nextbal
19 from t)
20 order by cust_id, date_value;
DATE_VALU CUST_ID AVG_BAL OLDBAL STATUS
01-AGO-09 111 1000 Left
01-SET-09 111 1200 1000 Augment
01-OTT-09 111 1100 1200 Diminish
01-AGO-09 112 2000 Left
01-SET-09 112 2000 2000 Maintain
01-OTT-09 112 2200 2000 Augment
01-AGO-09 113 900 Left
01-SET-09 113 1900 900 Augment
01-OTT-09 113 1900 1900 Maintain
01-AGO-09 114 1250 Left
01-SET-09 114 1250 1250 Maintain
Selezionate 11 righe.Max
[My Italian Oracle blog|http://oracleitalia.wordpress.com/2009/12/29/estrarre-i-dati-in-formato-xml-da-sql/] -
Feedback on SQL statements: getting sense in 'Table created.'
Hi,
I'd like to get some more sense/meaning while performing DDL on tables, users, views, etc. Let me show what I mean.
create table T1 (a char(10));
Table created.
create table T2 (b date);
Table created.
Wouldn't it be nice if you have a script with numerous DDL statements, to have feedback like:
create table T1 (a char(10));
Table T1 created.
create table T2 (b date);
Table T2 created.
Is there any way to set this? If I have a script which creates 100 tables, I'd like to see (on screen) more than only:
Table created.
View created.
View created.
User altered.
etc...
Any ideas?Hello PaulAlsemgeest
There is a technique for that. This is the using of PROMPT.
PROMPT *** Creating Table T1 ***
create table T1 (a char(10));
PROMPT *** Creating Table T2 ***
create table T2 (b date);
*** Creating Table T1 ***
Table created.
*** Creating Table T2 ***
Table created.
I hope it helps you. -
Is there a difference between mono & stereo when recording with single mic?
When creating an audio track to record vocals through a single condenser mic, is there a difference between selecting mono or stereo? if so, what's the difference?
MaeMarquez wrote:
When creating an audio track to record vocals through a single condenser mic, is there a difference between selecting mono or stereo? if so, what's the difference?
Assuming your source is mono, there will be no sonic difference, and recording to a stereo Logic track will simply waste disk space. If you have a stereo microphone (i.e. it's actually a pair of mics packaged together), then it makes sense to record in stereo. If you're using a standard single microphone, record to a mono Logic track.
-James -
Executing multiple SQL statements fails using ODBC
Executing multiple SQL statements will fail with error 'ORA-00911 invalid character' when connecting to an Oracle database using ODBC driver version 8.01.07.00.
When I use either my application or the Oracle ODBC Test client utility connecting using ODBC driver version 8.01.07.00 I can only get a single CALL statement (as shown below) to execute:
CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','
','Event File
Name','\\KILLIANS\BATCHCTL\SampleDemo1\JOURNALS\1.evt','','AREA1','','','','','','1','','','','','',' ','');
When I try to execute the following string with multiple CALL statements (as shown below) it fails with the following error being returned - ORA-00911: invalid character
CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','
','Event File
Name','\\KILLIANS\BATCHCTL\SampleDemo1\JOURNALS\1.evt','','AREA1','','','','','','1','','','','','',' ','');
CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD
HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Version','Recipe Header','1.0','','AREA1',' ','
','','','','1','','','','','',' ','');
CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD
HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Version Date','Recipe Header','5/18/2001 1:28:32
PM','','AREA1',' ',' ','','','','1','','','','','',' ','');
CALL BHInsert (TO_DATE('2003.07.23
10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Author','Recipe Header','Mark
Shepard','','AREA1',' ',' ','','','','1','','','','','',' ','');
I've tried adding a line feed in addition to the space at the end of each call but that doesn't seem to help. Also have tried unsuccessfully to change the seperator used between each call using various valid continuation characters.
Executing multiple CALL statements from within Oracle's SQL Worksheet connecting as the same user and password, as my application executes successfully. However when I try this from within the Oracle ODBC test client, it fails with the same ORA-00911 error that I'm seeing in my application.
I'm currently trying the more recent ODBC drivers, however any ideas or suggestions would be greatly appreciated.Can you take the begin ... end block and run it using SQL*Plus?
I can't think of any documentation that would specifically answer this question. I'm sure if you read & absorbed the ODBC Programmers Reference (2000+ pages) you'd be able to find out, but I don't know of a quick way to find out.
You can enable SQL*Net tracing. There are a fair number of options for enabling this tracing-- http://tahiti.oracle.com has all the Oracle manuals online, which should give you enough info to configure exactly what you want.
I would suggest, however, that you look into more performant/ scalable alternatives rather than going too far down this path. A block with lots of SQL statements with literals isn't going to make your database happy even if you get it to work.
Justin -
Importing excel files - problem with single quote
When importing excel files using 1.5, I can't get data with single quotes (') imported.
When I run the insert statement given in SQLPlus I get "ORA-01756: quoted string not properly terminated", which is different than the error that SQL Developer gives me (see below).
Also, I have a numeric value shown without a thousands comma-separator in the XLS file that I'm trying to load into a varchar2 field. But, the insert statements have added a thousands comma-separator which I don't want.
REM Error starting at line 1 in command:
REM INSERT INTO table (ID, NAME, CODE)
REM VALUES (2427407, 'Ed-u-care Children's Center', '73,000');
REM Error at Command Line:2 Column:37
REM Error report:
REM SQL Error: ORA-00917: missing comma
REM 00917. 00000 - "missing comma"
REM *Cause:
REM *Action:
One last thing, TOAD gives a way to automap columns chosen from XLS to the columns in the database. It sure would be nice to have this functionality in SQL Developer.
Thanks,
SteveDid you consider both to be bugs (i.e., single quote issue and thousands comma separator issue)?
Thanks -
Error in SQL Statement: SAPSQL_INVALID_FIELDNAME F~/BIC/ZREVISQTY
Dear Guys,
Regards..In the "Listcube" transaction and "Manage Contents" of the cube,whenver i execute the transaction to get the 'Output List' ,i get the following error : " Error in SQL Statement : SAPSQL_INVALID_FIELDNAME"..with the following obj : ZREVISQTY............But when i remove the "ZREVISQTY" from the selection screen in both "LISTCUBE" and "MANAGE" of the cube,the output works fine......It would be great if somone can throw light on this...........
Manythanks
ArunDear Guys,
Regards..In the "Listcube" transaction and "Manage Contents" of the cube,whenver i execute the transaction to get the 'Output List' ,i get the following error : " Error in SQL Statement : SAPSQL_INVALID_FIELDNAME"..with the following obj : ZREVISQTY............But when i remove the "ZREVISQTY" from the selection screen in both "LISTCUBE" and "MANAGE" of the cube,the output works fine......It would be great if somone can throw light on this...........
Manythanks
Arun
Maybe you are looking for
-
Problem with Select tag in iPad Safari
The <select> tag which provides a drop-down list is giving me problems. I when I change the value, sometimes I get all sorts of spurious characters after the field and sometimes I get a truncated value. I need to put a span tag in front of it to get
-
Does anyone know of a site which will walk a total newbie through making a very simple game in Java. It doesn't matter how crappy the game is, just something to get the newbie started. The website is for me :) Thanks, Christopher Gillis
-
Dispaly operators in JSF dropDown
Hi , There is a requirement in my project to add and delete a row onclick of a button. Each row has a drop down which displays ("<",">","<=",">=") operators. When i am using the below HTML code for displaying dropdowns ,add and delete functionalities
-
SAP MM- Trying to send RFQ's to the vendors via email.
Hi Experts, User is trying to send RFQs using Email address... But user is not able to do so.... Please guide how to start with... Thanks, Forum shah
-
Adobe LifeCycle Designer funktioniert nicht mehr
Ich habe LCS ES4 SP 1 (German) seit mehreren Monaten auf meinem Laptop (Dell E6500) mit Win 8.1 als Standalone-Version (also nur Designer für Formularerzeugung) genutzt. Seit einigen Tagen kommt beim Start gleich die Meldung "Adobe LifeCycle Designer