עזרה בשאילתה

משקיען10

New member
עזרה בשאילתה

ערב טוב,
אשמח לקבל עזרה או הכוונה לפתרון.
יש לי טבלה של קבלות שיש בה שדות של סה"כ מסמך ושדות של סכום מזומן, סכום אשראי, צ'ק או העברה בנקאית. אין מצב שבו קבלה תתבצע בשני אמצעי תשלום שונים באופן חלקי. אני רוצה לשים בעמודה נוספת את שם האמצעי תשלום כי משום מה הבסיס נתונים לא תוכנן לעדכן את הנתון הזה.
ניסיתי לעשות את זה באמצעות case אבל לא ממש הצלחתי. בניתי בבית בסיס נתונים לדוגמא עם טבלה אחת בלבד רק בשביל לקבל השראה לפתרון . בקיצור, איך אני שותל בשדה details את הערכים של המחאה / מזומן / העברה בנאית לפי תנאי שאם הסכום באחד מהשדות של הסכומים גדול או שונה מאפס?
 

משקיען10

New member
DDL לשאילתה

/****** Object: Table [dbo].[orct] Script Date: 22/04/2015 17:23:42 ******/
&nbsp
SET ANSI_NULLS ON
&nbsp
GO
&nbsp
SET QUOTED_IDENTIFIER ON
&nbsp
GO
&nbsp
CREATE DATABASE test2;
&nbsp
CREATE TABLE [dbo].[orctnew]
&nbsp
(
&nbsp
[docnum] [nchar](10) NOT NULL,
&nbsp
[docsum] [int] NULL,
&nbsp
[cash] [int] NULL,
&nbsp
[check] [int] NULL,
&nbsp
[credit] [int] NULL,
&nbsp
[details] [nchar](10) NULL,
&nbsp
CONSTRAINT [PK_orctnew] PRIMARY KEY CLUSTERED
&nbsp
(
&nbsp
[docnum] ASC
&nbsp
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
&nbsp
) ON [PRIMARY]
&nbsp
GO
&nbsp
insert into orctnew values
&nbsp
(10,200,200,0,0,null),
&nbsp
(20,300,0,300,0,null),
&nbsp
(30,400,0,0,400,null)
&nbsp
go
&nbsp
select * from orctnew
&nbsp
 

eygo

New member
התכוונת לזה?

select * ,case when ([cash]>0) then 'Cash'
when ([check]>0) then 'Check'
when ([credit]>0) then 'Credit' else 'None' end as details_correctfrom orctnew
 

משקיען10

New member
אחלה... לא מאמין שזה כזה פשוט
תודה רבה חבר

 
למעלה