Just nu i M3-nätverket
Gå till innehåll

Nuggit

Medlem
  • Antal inlägg

    159
  • Gick med

  • Senaste besök

  • Vunnit antal dagar

    2

Nuggit vann dagen: 14 augusti 2012

Nuggit hade det mest gillade innehållet!

Om Nuggit

  • Medlemstitel
    Aktiv
  1. Har försökt förtydliga detta lite, här är vyn med hur jag tänkt få ihop med kundordertabellen: Detta resulterar i dubbla resultatrader som jag behöver få till 1 rad. select a.company, a.voucher_date, a.voucher_type, a.voucher_no, a.row_no, a.account, a.account_desc, a.code_b, a.code_b_desc, a.code_c, a.code_d, a.amount, a.text, a.reference_serie, a.reference_number, (select d.cf$_other_funding from jdifs.customer_order c ,jdifs.customer_order_cft d where c.order_no = a.reference_number and a.reference_serie='CUST ORDER' and c.objkey = d.rowkey) as cf$_other_funding from jdifs.gen_led_voucher_row_union_qry a where a.account in ( select b.code_part_value from jdifs.accounting_attribute_con b where b.company = a.company and b.code_part = 'A' and b.attribute = 'SAMEPR' and b.attribute_value = 'YES')
  2. Hej, har ett problem jag har klurat på väldigt länge nu... Jag en databasvy som ser ut som följande: select a.company, a.voucher_date, a.voucher_type, a.voucher_no, a.row_no, a.account, a.account_desc, a.code_b, a.code_b_desc, a.code_c, a.code_d, a.amount, a.text, a.reference_serie, a.reference_number, d.cf$_other_funding from jdifs.gen_led_voucher_row_union_qry a, jdifs.customer_order c , jdifs.customer_order_cft d where a.account in ( select b.code_part_value from jdifs.accounting_attribute_con b where b.company = a.company and b.code_part = 'A' and b.attribute = 'SAMEPR' and b.attribute_value = 'YES') and a.code_d= c.order_no(+) and c.objkey = d.rowkey(+) Problemet jag har är att i kolumnen a.code_d där finns något som ofta är = c.order_no MEN inte alltid. Men denna vy får till synes rätt resultat. Problemet är att det senare är en rapport som läser denna vy. Den rapporten ser ut såhär: select to_char(a.voucher_date,'YYYY-MM-DD') "VOUCHER DATE", a.voucher_type "VOUCHER TYPE", a.voucher_no "VOUCHER_NO", a.row_no "ROW NO", a.account "ACCOUNT", a.account_desc "ACCOUNT DESC", a.code_b "COST CENTER", a.code_b_desc "COST CENTER DESC", a.code_c "PROD LINE", a.code_d "PROJECT ID", to_char(a.amount*(-1),'999G999G990D99','NLS_NUMERIC_CHARACTERS='', ''') "AMOUNT", a.text "TEXT", a.REFERENCE_SERIE "REF SERIE", a.REFERENCE_NUMBER "REF NUMBER", null "DIFFERENCE" from ifsinfo.JD_SALES_MAN_PROJECT_REP a where a.company = '2J' and upper(a.code_d) = upper('&PROJECT_ID') union select ' ' "VOUCHER DATE", null "VOUCHER TYPE", null "VOUCHER_NO", null "ROW NO", null "ACCOUNT", null "ACCOUNT DESC", null "COST CENTER", null "COST CENTER DESC", null "PROD LINE", a.code_d "PROJECT ID", to_char(sum(a.amount*(-1)),'999G999G990D99','NLS_NUMERIC_CHARACTERS='', ''') "AMOUNT", 'Actual margin / Estimated margin' "TEXT", to_char(a.cf$_other_funding,'999G999G990D99','NLS_NUMERIC_CHARACTERS='', ''') "REF SERIE", to_char(sum(a.amount*(-1))-a.cf$_other_funding,'999G999G990D99','NLS_NUMERIC_CHARACTERS='', ''') "REF NUMBER", 'Difference' "DIFFERENCE" from ifsinfo.JD_SALES_MAN_PROJECT_REP a where a.company = '2J' and upper(a.code_d) = upper('&PROJECT_ID') group by a.code_d, a.cf$_other_funding order by 1 desc, 2 asc, 3 desc Där den sista unionen är det som genererar problemet... Idén med den är att visa en resultatrad som sista rad i rapporten. Problemet är att den inte visar något värde i de fallen då a.code_d INTE är likadant som c.order_no i vyn överst. Logiken då för att få ut rätt order är att för varje rad, ska kolumnen REF SERIE kollas,där den innehåller order CUST ORDER, då finns order nummret i REF NUMBER kolumnen. MEN en c.order_no = a.ref_number går inte eftersom även raderna där ref serie INTE är cust order ska komma med... Hoppas detta är begripligt... fråga gärna annars så förtydligar jag.
  3. Hej! Jag håller på och jobbar med en vy för tillfället som ställer till oreda, framförallt i mitt huvud tror jag. Tabellen som innehåller datan jag ska snygga till innehåller följande: PART NO VALID_FROM DISCOUNT 0392WJ 2009-11-27 10 0392WJ 2014-01-01 20 0392WJ 2018-06-15 99 0402WJ 2014-02-01 25 Det jag vill ha ut är: För varje nytt partnummer vill jag ha den raden som har högsta datumet men INTE i framtiden. så i det här fallet vill jag att vyn ska innehålla följande rader PART NO VALID_FROM DISCOUNT 0402WJ 2014-02-01 25 0392WJ 2014-01-01 20 Jag har testat med select * from ( select catalog_no,valid_from,discount from discount_table order by valid_from_date desc) where rownum = 1 Men det genererar ju enbart den raden med högsta datumet, oavsett part_no Hur tusan gör man detta på enklast sätt? /Niklas
  4. Är närmare en lösning med TO_CHAR(sum(amount),'99,999,99') AS amount_tot, Däremot kan jag inte få ett mellanslag som tusentalsavgränsare, alltså 99 999.99 då får jag ett invalid number ofrmat model-fel. Några tips? jag vill alltså ha ett mellanslag som tusentalsavgränsare /N
  5. Det verkar så Jarlh, men får det inte att fungera, Kör jag (SUM(CAST((ab.amount_balance)*-1))as decimal(10,2)) as amount, Får jag ett missing expression fel... Jag har testat att flytta omkring parenteserna men det verkar inte heller hjälpa... Originalsträngen var: attribute AS attribute_description, sum(amount) AS amount_tot, MARGIN_MONEY AS margin, Stort tack för hjälpen så här långt!
  6. Jag får inte format att fungera. SELECT year_period AS period, code_c AS model_type, code_d AS order_no, code_d_desc AS description, attribute_value AS attribute_value, attribute AS attribute_description, SELECT FORMAT(sum(amount), 'C', 'fr-FR') as amount_tot FROM WHERE Fungerar inte, får ett missing expression-meddelande på select-satsen vid format tar jag bort select och kör FORMAT(sum(amount), 'C', 'fr-FR') as amount_tot, får jag ett Format - invalid identifier. Några tips?
  7. Hej! Jag har en sql-rapport som räknar ut summan av kostnaden för varje del. helt enkelt sum(amount)... Det fungerar fint, enda problemet är att det resulterar t.ex. 89151.00 ibland och ibland 989 Det jag vill göra är att vid varje tusental ska det vara blanksteg... alltså 89 151.00 Det ska också ALLTID vara 2 decimaler. alltså även vid 989 exemplet ska det vara 989.00 Hur löser jag detta på ett smidigt sätt? (ORACLE) Tack för svar /Niklas
  8. Ok, tack JarlH det var det jag misstänkte, men tänkte att det vore trevligt att få använda sig av aliaset:) Stort tack iaf! /Niklas
  9. Då kommer frågan "hur"?:-) Det går inte att göra select part_no AS PART (SELECT * FROM TABLE WHERE part_no = PART) Alltså sätta in det namnet som givits efter = ...
  10. Hej Jonas, jag tog bara ett "värdelöst" exempel för att statuera min fråga. Så ingen logik just i den SQL-frågan. Det jag behöver är helt enkelt att om jag tagit fram ca 20 kolumner ifrån en tabell, sen behöver jag andra tabeller, (därav mina nästlade select-satser) men har hamnat nu att den nästkommande select-satsen är i behov av datan som jag hittade i selectsatsen innan. och istället för att kopiera och klistra in och köra samma select-sats 4-5 ggr vill jag bara använda sparade datan och bara använda värdet.
  11. Hejsan! Jag har en kort fråga den här gången. Går det att använda ett värde ifrån en kolumn som variabel i nästa select-sats. Har en lång select-sats som ser ut ungefär såhär Select part_no as part, (select sales_price from sales_orders where sales_order_part_id = part_catalog.part_id and part_catalog.part_no='abc-123') FROM part_catalog Detta är bara ett exempel för att visa hur jag tänker så logiken är kanske inte fungerande. Det jag undrar är om det i den nästlade select-satsen går att använda PART (as part) som vilkor. alltså : (select sales_price from sales_orders where sales_order_part_id = part_catalog.part_id and part_catalog.part_no = PART) Detta kanske inte ger så stor fördel just i det här fallet, men i längre sql-satser skulle detta underlätta väldigt
  12. Sorry, jag kände att det blev lite rörigt själv. Jo alltså jag vill ju visa den som INTE är null, den ena kommer ALLTID vara null. Det är en lista med alla transaktioner för en arbetsorder... så varje rad har antingen en rad med arbete eller delar, och vill ha en kolumn för trans_date vars innehåll ska vara ANTINGEN Cre_date eller TRANS_DATE
  13. Hej! Frågorna strömmar återigen. Jag har ytterligare en undran. Jag håller på med en SQL-fråga där jag vill samla en massa kolumner från olika tabeller. Problemet jag har är att jag vill ha transaktionsdatum med. Denna information finns på två olika platser. I fall 1 "Arbetat tid har lags till på en arbetsorder" Denna gång finns transaktionsdatumet klart och tydligt i en tabell (Kolumnen heter TRANS_DATE) I fall 2 "Material har lagts till till arbetsordern" I detta fall finns inget riktigt transaktionsdatum, utan en "creation_date" för förflyttningen av delen. (Kolumnen heter CRE_DATE) Fördelen är att när det finns information i TRANS_DATE kolumnen dvs att raden är "arbetstid" då kommer kolumnen CRE_DATE sakna värde och tvärtom. Det jag vill göra är helt enkelt "När TRANS_DATE inte är null, visa värdet i CRE_DATE och när TRANS_DATE är null, visa värdet i Trans_date Går detta att lösa? I vanliga fall när kolumnerna har samma namn skulle jag göra en SELECT TRANS_DATE FROM table WHERE TRANS_ID In (SELECT....) Men hur löser man detta när det inte är samma kolumnnamn?
  14. Sorry, missade helt den lilla detaljen:) Det är en ORACLE-databas Stort tack för svaret:)
×
×
  • Skapa nytt...